Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Deshabilitar comentarios en entradas de categorías específicas

WordPress por defecto permite desactivar los comentarios para entradas individuales, pero ¿qué sucede si quieres desactivar los comentarios para entradas que pertenecen a una o varias categorías?, en este artículo veremos como realizar esto usando código.

 

Generalidades

En algunos casos es posible que quieras tener control sobre los comentarios de las entradas de determinadas categorías, WordPress en las versiones actuales no cuenta con esta funcionalidad, existen plugins que pueden facilitarte este trabajo, sin embargo en este artículo veremos como realizarlo a través de código.

 

Código para quitar comentarios en entradas de categorías específicas

Puedes agregar el siguiente código al final del archivo functions.php de tu tema hijo, ten en cuenta que debes cambiar los IDs de las categorías que no deberían tener comentarios.

function post_categories_without_comments(){
        $disabled_cat = array(295,297); // Cambiar aquí los IDs de las categorías

        if (is_single()) {
                global $post;
                $post_categories = wp_get_post_categories($post->ID);
                return array_intersect($post_categories, $disabled_cat);
        }
        return [];
}

function dcms_check_for_closed() {
        $result = post_categories_without_comments();
    if (!empty($result)) {
        add_filter('comments_open', '__return_false', 10, 2);
    }
}
add_action('the_post', 'dcms_check_for_closed');

function dcms_deregister_reply_js() {
        $result = post_categories_without_comments();
        if (!empty($result)) {
                wp_deregister_script( 'comment-reply' );
        }
}
add_action('wp_enqueue_scripts', 'dcms_deregister_reply_js');

 
En el código anterior:

  • Primero creamos una función post_categories_without_comments() general que se reutilizará en dos de los Hooks
  • Dentro de esta función se configura los IDs de las categorías que no deberían tener comentarios habilitados
  • Comprobamos si estamos en una entrada y obtenemos el posts actual del cual a su vez obtenemos las categorías
  • Si las categorías del post actual son algunas de las categorías restringidas entonces significa que el post actual no debe llevar comentarios
  • La comprobación de categorías la realizamos con la función de PHP de arrays array_intersect(), la cual nos devuelve un array con los elementos que coinciden
  • Por otro lado tenemos el primer Hook the_post dentro del cual se llama a la función post_categories_without_comments(), se aplica además el filtro que deshabilitar los comentarios
  • También tenemos el Hook de encolado wp_enqueue_scripts, los comentarios agregan un archivo javascript, por lo que, si no hay comentarios habilitados, mejor también quitar ese archivo

 

Conclusión

Como has podido comprobar puedes quitar los comentarios de las entradas de determinadas categorías de manera sencilla a través de código y evitar hacerlo manualmente por entrada o usando un plugin.

 
¿Aún con dudas?, en el siguiente artículo se detallan los puntos anteriores.

Suscríbete a DecodeCMS:  

 

La entrada Deshabilitar comentarios en entradas de categorías específicas es un artículo reciente del sitio DecodeCMS.

Enregistrer un commentaire

0 Commentaires