Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
contenido entre parrafos

Insertar un anuncio entre el contenido de un post

Seguro que has visto en más de una ocasión páginas web que insertan anuncios o contenidos relacionados entre medias del propio contenido. De hecho yo lo tuve así durante un tiempo.

Probablemente te ronde por la cabeza la idea de saber si hay algún plugin para esto o no, y la respuesta es si. Podrás encontrar varios para cubrir esta funcionalidad en el repositorio oficial.

Pero aquí en este post te mostraré como hacerlo tu mismo/a a mano simplemente incluyendo unas líneas en el functions.php, y tener el control 100% sobre lo que queramos hacer:

//Insertar ads o contenido propio después del segundo párrafo del contenido principal. function insert_post_ads( $content ) { $ad_code = '<p>Aquí el código de tu anuncio o contenido destacado</p>'; if ( is_single() && ! is_admin() ) { return insert_ads_after_paragraph( $ad_code, 2, $content ); } return $content; } add_filter( 'the_content', 'insert_post_ads' ); // Función para insertar el contenido function insert_ads_after_paragraph( $insertion, $paragraph_id, $content ) { $closing_p = '</p>'; $paragraphs = explode( $closing_p, $content ); foreach ($paragraphs as $index => $paragraph) { if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if ( $paragraph_id == $index + 1 ) { $paragraphs[$index] .= $insertion; } } return implode( '', $paragraphs ); }

Simplemente actuaremos sobre el filter the_content. En la primera función insert_post_ads() guardamos en una variable el código del anuncio o el contenido que queramos mostrar. Comprobaremos que sólo vamos a actuar en el caso que estemos en single.php (is_single()), y sólo en la parte pública (!is_admin()).

En ese caso llamamos a la función insert_ads_after_paragraph() que va a insertar la cadena que contiene la información que queremos mostrar y el número de párrafo tras el que la vamos a mostrar.

El mecanismo es sencillo: partimos o dividimos todos los párrafos de nuestro contenido the_content en un array, utilizando la función explode de PHP y marcando el «corte» a través de la cadena de texto </p>, etiqueta HTML que indica el final de un párrafo.

A continuación recorremos todos los párrafos y concatenando de nuevo la etiqueta de cierre </p>. Sólo en el caso que se cumpla la condición de que el número de párrafo que hemos pasado a la función insert_ads_after_paragraph() (en este ejemplo: 2) sea igual a $index + 1 (recuerdo que las claves o keys comienzan con 0), concatenamos la cadena de texto que contiene nuestro anuncio o contenido destacado.

Una vez finalizado el bucle retornaremos el contenido final que incluye nuestra cadena de texto con el anuncio o contenido destacado después del segundo párrafo del texto original.

Puede que también te interese

Cómo reemplazar la hoja de estilos de un plugin por una propia
Cómo reemplazar la hoja de estilos de un plugin por una propia
En muchas ocasiones nos habremos encontrado con ésta situación: Instalamos un plugin que posee sus propios estilos y clases, y no encaja bien en nuestro…
Me han hackeado mi página web de WordPress, ¿qué puedo hacer?
Me han hackeado mi página web de WordPress, ¿qué puedo hacer?
Un día nos podemos levantar y encontrarnos con la desagradable noticia de que nuestro sitio ha sido infectado. Esto puede ocurrir por multitud de factores:…
Cómo solucionar el error al establecer una conexión con la base de datos en WordPress
Cómo solucionar el error al establecer una conexión con la base de datos en WordPress
En alguna ocasión podemos obtener en pantalla el mensaje de Error al establecer una conexión con la base de datos. Este mensaje es bastante explícito…
Cómo añadir nuestras propias opciones multi-idioma en el personalizador de WordPress
Cómo añadir nuestras propias opciones multi-idioma en el personalizador de WordPress
En la entrada anterior veíamos cómo agregar nuestras propias opciones en el personalizador de WordPress. En ésta entrada vamos a ver cómo podríamos organizarlas por…