Cómo eliminar la sección de comentarios solo de las páginas, no de las entradas

15 nov 2010, 16:51:53
Vistas: 6.98K
Votos: 6

Cómo eliminar la sección de comentarios solo de las páginas, no de las entradas

0
Todas las respuestas a la pregunta 3
3

Si deseas mostrar comentarios y el formulario de comentarios en entradas pero no en páginas, necesitas dividir la lógica en tu archivo de plantilla para llamar a comments_template() dependiendo del tipo de elemento mostrado (entrada o página). Hay dos formas de hacer esto: puedes mantener un archivo de plantilla para ambos elementos y usar etiquetas condicionales:

if (!is_page()) {
     comments_template();
}

La otra opción es usar tanto un archivo de plantilla single.php para tus entradas como un page.php para tus páginas (consulta la Jerarquía de Plantillas para más información). Simplemente omite la llamada a comments_template() en la plantilla de página. Si no hay otras diferencias entre el diseño de una entrada y una página, un archivo de plantilla combinado con etiquetas condicionales probablemente sea mejor para la mantenibilidad.

Si deseas hacer esto "a distancia", es decir, donde el archivo de plantilla ya incluye una llamada a comments_template(), puedes crear un plugin que se enganche al filtro comments_template y lo redirija a un archivo vacío en el directorio (bueno, incluso podría ser el mismo archivo del plugin, ya que solo contiene código PHP, no mostrará nada, pero esto podría confundir a otros).

add_filter('comments_template', 'no_comments_on_page');
function no_comments_on_page( $file )
{
    if ( is_page() ) {
        $file = dirname( __FILE__ ) . '/empty-file.php';
    }
    return $file;
}
15 nov 2010 17:12:25
Comentarios

Hola Jan, Gracias por la respuesta. ¿Existe algún plugin para hacer esto sin tener que modificar código?

Jitendra Vyas Jitendra Vyas
15 nov 2010 17:33:05

@metal-gear-solid: He actualizado mi respuesta con un ejemplo para hacer esto desde un plugin. No sé si existe un plugin que haga esto, pero es realmente fácil así que puedes colocarlo tú mismo en un archivo de plugin.

Jan Fabry Jan Fabry
15 nov 2010 18:08:06

Manualmente puedo eliminar la sección de comentarios para cada página desmarcando estas opciones http://farm2.static.flickr.com/1280/5179502796_b9e09c10ba.jpg. Y acabo de encontrar este plugin que mantendrá estas casillas desmarcadas para todas las páginas, pero no para las entradas http://wordpress.org/extend/plugins/page-comments-off-please/

Jitendra Vyas Jitendra Vyas
15 nov 2010 18:59:10
0

Me gusta mucho este fragmento del tema Hybrid al inicio de la plantilla comments.php que deshabilitará de manera flexible los comentarios si no son compatibles o están desactivados en una base por entrada/página:

if ( !post_type_supports( get_post_type(), 'comments' ) || ( !have_comments() && !comments_open() && !pings_open() ) )
    return;
15 nov 2010 17:38:33
0

dependiendo del tema.

revisa el código de pages.php y elimina lo relacionado con los comentarios

ten cuidado de no romper el diseño.

Si puedes publicar el código de pages.php aquí, esperamos poder ayudarte a indicar las modificaciones que necesitan hacerse

15 nov 2010 21:52:22