Son muchas las personas que monetizan sus páginas web de WordPress y si ese es tu caso, es importante que sepas cómo puedes colocar anuncios entre los párrafos de tus posts de forma automática y por supuesto que conozcas el mejor método para realizar esta labor.
En este post te mostraré dos métodos distintos. En primer lugar veremos el que sería sin duda alguna el mejor modo, que es mediante el código del sitio (te diré cómo hacerlo), ten en cuenta que al final nos sale más a cuenta crear nuestro código personalizado que recurrir a plugins ya que estos por lo general conlleva una pérdida de rendimiento del sitio más o menos notoria según el caso.
¡Consulta nuestros servicios!
En segundo lugar te recomendaré un plugin, que es la opción que más te recomendaría si no tienes nociones de programación web y por ende no estás demasiado cómodo tocando el código del sitio. ¡Tú eliges el modo! Pero lo dicho, mi recomendación siempre será que crees tu propio código para este tipo de cosas, tendrás un sitio mucho más rápido y óptimo (siempre y cuando lo hagas bien, claro).
Tabla de Contenidos
Usando Código
De momento te paso el código dando varios ejemplos comunes que podrías requerir en tu página y más abajo ahondaré un poco más en las distintas posibilidades que tienes.
// Onicode.com function ads_inside_posts($content) { if (is_single()) { $paragraphs = explode("</p>", $content); $new_content = ''; foreach ($paragraphs as $index => $paragraph) { $new_content .= $paragraph . "</p>"; if ($index === 2) { // Bajo un párrafo x $new_content .= '<div id="anuncio-1"></div>'; } if ($index === floor(count($paragraphs) / 2)) { // A mitad del contenido $new_content .= '<div id="anuncio-2"></div>'; } if ($index === count($paragraphs) - 2) { // Bajo el antepenúltimo párrafo $new_content .= '<div id="anuncio-3"></div>'; } } // A final del post $new_content .= '<div id="anuncio-4"></div>'; return $new_content; } return $content; } add_filter('the_content', 'ads_inside_posts');
Debes añadir esta función a tu functions.php, pero recuerda que antes de tocar cosas como estas es siempre recomendable realizar una copia de seguridad de tu fichero functions.php por si acaso hicieras algo mal (así vuelves fácilmente al estado original), este es un fichero algo delicado. Yo te recomiendo que para este tipo de labores uses el plugin Code Snippets, es uno de los que nunca faltan en mis páginas de wordpress, sirve para añadir código a la página de forma más sencilla y organizada.
Respecto al código que te he pasado, básicamente estamos recorriendo cada uno de los párrafos de los posts del sitio (por eso usamos la función is_single en el if, si quieres aplicarlo por ejemplo a páginas deberías usar is_page) y reconstruyéndolos por completo añadiendo el nuevo contenido que queremos incrustar en los lugares que especificamos.
Aquí es muy importante que entiendas que lo que hace «$new_content .= ‘ … ‘» es concatenar el contenido. Es decir, añadirlo conservando todo el contenido que tenga la variable previamente. Con el código estamos recorriendo todos los párrafos del post y añadiendo el contenido que queramos en las posiciones especificas, si no usáramos «.=», estaríamos sobreescribiendo el contenido.
Los anuncios los insertaríamos en lugar de los <div> que he añadido de ejemplo (anuncio-1, anuncio-2), todo siempre entre las comillas simples ». Te explico ahora en más detalle cómo podemos jugar con las posiciones de colocación en base al código anterior:
Bajo el Párrafo X
Para añadir el anuncio debajo del párrafo exacto que queramos:
// Onicode.com if ($index === 2) { // Bajo un párrafo x $new_content .= '<div id="anuncio-1"></div>'; }
En este caso del ejemplo se estaría aplicando bajo el párrafo 3. ¿Por qué el párrafo 3 y no el párrafo 2 en este caso si hemos escrito un 2? Ya sabes, el foreach comenzará a contar desde 0, por lo que el párrafo 3 estaría en la posición index de 2.
Por lo que bastaría con añadir las posiciones exactas que queramos restándole uno. Si por ejemplo queremos añadir anuncios tras el primer párrafo y tras el cuarto, añadiríamos estos dos if:
// Onicode.com if ($index === 0) { // Bajo el primer párrafo $new_content .= '<div id="anuncio-1"></div>'; } if ($index === 3) { // Bajo el cuarto párrafo $new_content .= '<div id="anuncio-2"></div>'; }
¡Puedes hacer esto en las posiciones exactas que quieras! Ten en cuenta que si añades una posición muy baja (no sé, bajo el párrafo 40 por decir algo) realmente no importa porque al tratarse de un if, pues si el post no tiene tantos párrafos pues directamente no se activará el if y listo. Aunque por supuesto, tampoco tendría sentido poner posiciones tan bajas si nuestros posts suelen ser cortos.
Contar los Párrafos desde Abajo para Posiciones más Bajas
Una forma más ideal para definir posiciones de párrafos que estén por la parte final del post. Por ejemplo para decirle que añada el anuncio bajo el antepenúltimo párrafo o cosas similares.
// Onicode.com if ($index === count($paragraphs) - 2) { // Bajo el antepenúltimo párrafo $new_content .= '<div id="anuncio-3"></div>'; }
Con count($paragraphs) estamos contando todos los párrafos que tiene nuestro post, por lo que tras esto bastaría con añadirle el número de posiciones que queremos restarle a la posición final y listo.
- count($paragraphs) – 1: Bajo el penúltimo párrafo.
- count($paragraphs) – 2: Bajo el antepenúltimo párrafo.
- count($paragraphs) – 3: Bajo el anteantepenúltimo párrafo… y así.
Lo único de usar este método es que tenemos que tener cuidado ya que si nuestros posts son muy cortos y dependiendo de qué posiciones contando desde arriba hemos añadido, podríamos tener algún post en el que el funcionamiento no sea muy óptimo (que se mezclen las posiciones contando desde arriba y contando las desde abajo).
Eso de todos modos podemos solucionarlo haciendo que esta condición solo se aplique si el post tiene al menos x párrafos de largo. Sería algo así:
// Onicode.com if ($index === count($paragraphs) - 2 && count($paragraphs) >= 12) { // Bajo el antepenúltimo párrafo solo si el post tiene al menos 12 párrafos $new_content .= '<div id="anuncio-3"></div>'; }
Estamos añadiendo una condición adicional en el if para que solo se aplique si el número de párrafos del post es de 12 o más. Si quieres añadir un mínimo de posts más alto o bajo, modificas el número y listo.
A Mitad del Contenido
Ahora que ya entiendes mejor cómo funciona la función count, veremos cómo colocar anuncios justo en la mitad del post (en el párrafo que esté en la mitad según el total, vamos). Para un correcto funcionamiento, tendremos que usar una nueva función extra que ahora te explico:
// Onicode.com if ($index === floor(count($paragraphs) / 2)) { // A mitad del contenido $new_content .= '<div id="anuncio-2"></div>'; }
Básicamente estamos contando el número de párrafos del post y dividiéndolo entre dos (así obtenemos el párrafo que está justo en la mitad).
Sin embargo, aquí estamos usando una función adicional además de la función count; la función floor(). ¿Qué hace esto? Pues en el caso de que el número que reciba esta función no sea entero, lo redondeará hacia abajo.
¿Por qué hacemos esto? Imagina que tu post tiene 11 párrafos. Eso implica que al hacer el count($paragraphs) / 2 estaríamos obteniendo el valor de 5.5 y como comprenderás, no existe el párrafo 5.5. Al aplicar la función floor() transformaremos el valor de 5.5 en 5 para que nuestro código pueda funcionar debidamente.
Si quisieras hacer un redondeo hacia arriba, tendrás que usar la función ceil().
Al Final del Post
Para añadir contenido justo al final del post es mejor que lo hagamos fuera del foreach, ya que si seguimos añadiendo contenido a «$new_content .= »» tras el foreach, lo estaremos incluyendo justo al final del post. Así sería:
// Onicode.com // Cóloca esto abajo y fuera del foreach $new_content .= '<div id="anuncio-4"></div>';
Ahora sería todo cuestión de que crees el código que se adapte mejor a tus necesidades, algo que creo que no será un problema para ti dados todos los ejemplos de colocación de anuncios que te hemos ido comentando en este post.
Usando un Plugin
Como te comentaba al inicio, mi recomendación es que añadas tus anuncios mediante código, pero si no estás muy familiarizado manejando código, sería mejor que uses un plugin para no complicarte demasiado la vida. Eso sí, ten en cuenta que el rendimiento de tu sitio no será el mismo.
El Plugin que te recomiendo para ello es «Ad Inserter» ya que se trata de un plugin muy popular, que tiene muy buenas reviews y que además se nota que los desarrolladores se lo toman muy en serio ya que este recibe actualizaciones bastante a menudo. Decir que personalmente lo he probado y la verdad es que me parece un plugin genial.
Bastará con que lo instales y lo configures a tu gusto, verás que contarás con un amplio catálogo de facilidades y de opciones de cara a la configuración de las posiciones de tus anuncios. Lo dicho, un Plugin muy completo y que recomiendo bastante (¡pero recomiendo todavía más usar tu propio código!).
Y eso sería todo por hoy, espero que este post te haya servido de ayuda de cara a la inclusión de anuncios entre los párrafos de tus posts y ya sabes, cualquier duda o cosa que quieras comentar sobre este contenido de hoy o sobre algún aspecto relacionado, no dudes en dejar tu comentario. ¡Hasta otra!
Más información aquí.