Hace un rato he resuelto un problema peliagudo con BuddyPress. Resulta que en las páginas del plugin se mostraban todos los comentarios de la web. ¿Quieres saber cómo lo resolví?

Antecedentes del problema

Este fin de semana tengo un poco menos de trabajo como freelance, ya que son los primeros días de Agosto, así que he decidido dedicarme un poco al trabajo de madriguera. Tenía algunas cosas pendientes, entre ellas organizar un poco algunas funcionalidades de este blog.

Fue entonces cuando me encontré con este problema, al principio pensé que era la “Actividad” de BuddyPress (una de las razones por las que lo instalé). Sin embargo, cuál sería mi sorpresa al descubrir que aparecía en todas las páginas del plugin, como usuarios, amigos… etc, destrozándolas a nivel estético y de SEO. Siempre lo mismo: la lista de todos los comentarios de la web, valoraciones de WooCommerce incluídas.

Fue entonces cuando tuve que buscar por Internet, probar varias cosas, y finalmente resolverlo. Fue muy frustrante y estuve a punto incluso de cambiar de plantilla. Afortunadamente, como me muevo bien tanto en español como en inglés, pude resolverlo con la infinita sabiduría de los foros de Internet.

He decidido escribir este post para que, si estás con el mismo problema, puedas saber cómo lo solucioné. Generaría mucho más tráfico si lo escribiera en inglés, pero si has llegado hasta aquí es porque necesitas una solución en nuestro idioma, y aquí está.

Además, te voy a citar las fuentes en inglés de esta información, por si hay contenido fresco que te pueda ser útil, ya que muchas de ellas son foros. No se cuánto tiempo puede pasar desde que lo escribo hasta que tú lo leas, por lo que conviene que tengas acceso a información lo más actualizada posible.

La causa del problema es el tema de WordPress que usas (pero se puede arreglar sin tener que cambiarlo, no te preocupes)

La causa es tu plantilla, no obstante, antes de tocar nada más, conviene que lo compruebes. En esto están de acuerdo numerosas fuentes, y te lo voy a demostrar un poco más abajo con un caso práctico.

Entre las fuentes que lo afirman, tenemos por ejemplo lo que comenta el administrador del foro de soporte de Acosmin cuando un usuario le pregunta por esta misma incidencia. “Nuestra plantilla no es compatible con BuddyPress”. También lo explica el usuario danbp en el propio foro de soporte de BuddyPress.

Cómo testear si realmente la culpa es de tu plantilla

Es fácil: simplemente comprueba si con la plantilla por defecto de WordPress (La Seventeen en el momento de escribir este post)  se ven esos molestos comentarios o no. Esta forma de testearlo la recomienda djsteveb en el foro de soporte de BuddyPress.

Un truco de mi cosecha, para que no se te destartale la web ni asustes a tus usuarios, es hacerlo mediante la opción de “previsualización” de la plantilla. La encontrarás en Apariencia > Temas y de esta forma, al no activarla, no realizas cambios en la web. Ahorras tiempos y disgustos, ya que sólo vas a testear una cosa un momento, y lo menos que necesitas es buscarte más trabajo.

Posibles soluciones

Ahora voy a darte las distintas soluciones al problema que fuí encontrando por Internet y aplicando. Te recomiendo que las pruebes de una en una, para ver si esa solución concreta resuelve tu problema. Recuerda que la causa es la plantilla, por lo que según el funcionamiento de la misma tendrás resultados de una u otra manera.

Editar functions.php

Esta es la que pienso que puede resolver el problema más rápidamente. El archivo functions.php está presente en todas las plantillas (generalmente) y controla determinadas reglas de funcionamiento (vamos a explicarlo así). En otras palabras, como su nombre indica, controla el funcionamiento de la plantilla, y además te permite añadirle funciones. Esto es lo que vamos a hacer.

Tal y como recomienda Morka en el foro de soporte de BuddyPress, añade a tu archivo functions.php el siguiente código:

add_filter(‘tc_show_comments’, ‘disable_comments_buddypress_pages’);
function disable_comments_buddypress_pages( $bool ){
if ( is_page() && is_buddypress() )
return false;
return $bool;
}

Pero tal y como advierte este usuario, esto va a afectar a todas las páginas de BuddyPress, por lo que si por alguna remota razón necesitas que se pueda comentar en alguna de ellas… no te va a servir. Lo que hace, básicamente es eliminar la caja de comentarios en todas las páginas de BuddyPress. Muerto el perro, se acabó la rabia.

Editar el .CSS

Hay varias soluciones que pasan por editar el archivo css de la plantilla. El nombre puede variar, pero generalmente se llama style.css . Ese archivo es el que controla todas las hojas de estilo en cascada de tu plantilla de WordPress. A continuación te cito las dos distintas opciones.

Opción 1: Asignar un estilo “sin comentarios” a las páginas de BuddyPress a través de CSS

Tal y como propone Robert Olsen en el foro de YooThemes, una solución interesante podría ser crear un estilo propio para las páginas de BuddyPress a través de las hojas de estilo. Este sería el código que añadir a tu archivo CSS:

body.buddypress #comments { display:none !important; }

Recuerda que BuddyPress funciona a través de una páginas “en blanco” donde se muestra el contenido. Tiene sentido que la plantilla fuerze comentarios en ellas y se vuelva “un poco loca” si no estaba diseñada pensando en las particularidades de BuddyPress.

Opción 2: Anular los comentarios de páginas concretas a través de CSS en WordPress

El usuario Bajir, de los foros de Muffingroup propone algo diferente. Él quiere a través de la hoja de estilos deshabilitar los comentarios de páginas concretas a través de su ID. El problema es que, hasta donde yo entiendo de CSS, eso no funciona como él lo plantea ya que la ID de la página no es una clase de estilo, por lo que ese código no hace nada. Otro usuario le responde, pero hay que estar registrado para ver la respuesta, y para registrarse hay que ser cliente… por lo que me quedé con las ganas de saber en qué acababa la cosa. ESTA OPCIÓN NO LA RECOMIENDO.

 

Una solución radical: eliminar los comentarios en todas las páginas

Esta es una solución radical porque eliminaría los comentarios de todas las páginas de WordPress. Hay muchos casos en los que no nos interesa que las páginas sean comentables, pero hay personas que si lo necesitan, por lo que ten precaución con esta medida.

Tal y como cuenta ironcladmarcom en el foro de YooThemes, debes eliminar el siguiente código del archivo que define las páginas en tu plantilla:

<?php comments_template(); ?>

Generalmente este archivo se suele llamar “pages.php”. Pero recuerda que esto afectará por igual a todas las páginas de WordPress.

Una alternativa más laboriosa pero menos radical

Si necesitas aplicar esto, pero no quieres ser tan radical, puedes seguir los pasos que explica Nicolas de PressCustomizr. Mediante esa opción puedes desactivar manualmente en páginas concretas los comentarios, quizás te sirva.

Algunas plantillas lo ponen un poquito más fácil

Como explica Jakewho en el foro de soporte de BuddyPress, su plantilla tiene una opción en la configuración que le permite deshabilitar los comentarios en todas las páginas. Si este fuese el caso de la tuya, es mejor que lo hagas así.

¿Por qué? Porque siempre es más limpio hacerlo mediante la propia configuración de la plantilla (ya que viene diseñada para poderlo hacer así) que empezar a tocar código y poder terminar liándola. Sin embargo las plantillas de la mayoría de los mortales no tienen esta opción.

Curiosamente a este usuario le funciona si lo hace a través de la configuración de la plantilla, pero no si elimina los comentarios individualmente en cada página. Cada plantilla es un mundo.

 

Cuidado con Hummingbird, CloudFlare y la caché de WordPress (en mi caso “Súper Caché”)

Dentro de las cosas que he hecho este fin de semana, instalé algunos plugins para aumentar la velocidad de WordPress. Cuando ya iba a tirar la toalla con esto, recordé que los había instalado, y por eso quiero recordarte que limpies las cachés para probar las distintas opciones que te he dado en este post. Esto se debe a que, aunque el problema esté resuelto, los comentarios pueden quedarse en la versión de la página guardada en la caché, y parecer que no lo has solucionado.

Si usas CloudFlare, como es mi caso (para la SSL, concretamente) es importante que limpies también esa caché, sólo por estar seguros.

Además fue necesario volver a “minificar” el CSS y el JavaScript del plugin Hummingbird, que instalé para mejorar la puntuación en el test de velocidad de Google. Este plugin en concreto tiene una opción de “volver a empezar” que te permite hacerlo fácilmente. Al limpiar todo eso, funcionó.

 

Bonus: Cómo hacer tu tema de WordPress compatible con BuddyPress

En mi búsqueda para resolver este problema, di con este interesante artículo de Sarah Gooding en el que explica cómo adaptar una plantilla de WordPress para que funcione adecuadamente BuddyPress en ella. El proceso es un poco engorroso, y cada vez que se actualice BuddyPress vas a tener que repetirlo, pero igual como último recurso te pueda servir.

 

Si todo lo anterior falla…

Es difícil que encuentres muchas más soluciones a este problema en Internet. Si llegas a este punto sin una solución, deberías cambiar de tema de WordPress. Seguro que encuentras una bonita plantilla compatible con BuddyPress en Internet.


Puedes preguntarme cualquier duda en los comentarios, están conectados con mi foro y tanto la comunidad como yo podemos ayudarte. Si te ha servido este post, me encantaría saberlo. De esa forma, puedo seguir creando contenidos así. Simplemente deja un comentario diciendo “me ha servido”. ¡Hasta pronto!