Cómo excluir categorías del loop (actualizado)

Hay ocasiones en que no quieres que se muestren posts de ciertas categorías en tu blog, bien porque las quieres mostrar solo en secciones específicas, o porque son solo para un tipo de usuario, tu decides el motivo.

Si alguna vez has pensado en que necesitas excluir posts de ciertas categorías y que no se muestren en según que lugares de tu blog, la página principal, por ejemplo, aquí tienes dos modos de conseguirlo.

Ultimate Category Excluder

Como siempre, o casi, hay un plugin para conseguirlo. Gracias a Ultimate Category Excluder puedes decidir si ciertas categorías se mostrarán en la página principal o incluso en la lista de categorías de tu barra lateral. Solo tienes que elegir la categoría y marcar las casillas adecuadas a cada caso.

Modificando el Loop

Por supuesto, también puedes modificar manualmente el loop de WordPress, lo que te dará mucha mas flexibilidad pues vas a poder utilizar este sistema de exclusión de categorías en cualquier lugar de tu blog.

Para ello debes modificar la «llamada» a las categorías de posts a mostrar por algo similar a este ejemplo:

<!--?php if ( have_posts() ) : query_posts($query_string .'&cat=-1,-2'); while ( have_posts() ) : the_post(); ?-->

Donde ‘-1’ y ‘-2’ serían los ID de categoría a excluir que, como es normal, puedes ampliar, reducir o cambiar a tu gusto.

Añadiendo una función que las excluya

Lo mismo pero más limpio, sería añadir una función como esta a tu plugin de personalizaciones o al fichero functions.php  del tema hijo:

add_action( 'pre_get_posts', 'exclude_specific_cats' );
function exclude_specific_cats( $wp_query ) {   
    if( !is_admin() && is_main_query() && is_home() ) {
        $wp_query->set( 'cat', '-1,-2' );
    }
}

 

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(3 votos, promedio: 5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

10 comentarios en “Cómo excluir categorías del loop (actualizado)”

  1. Pingback: Bitacoras.com

  2. A mi lo que me gustaría hacer es evitar que se vean las subcategorías en la barra lateral, en el widget de categorías que tengo puesto, pero que se siguieran viendo en las entradas que la llevan y como no, todas esas noticias en al página principal. ¿Habría alguna forma de hacerlo?

  3. Interesante, sobre todo porque en la imagen aparece la opción de no mostrar los post de algunas categorias en la pagina archive, leí en alguna parte que eso era imposible de hacer con un plugin… Lo probare.

    Saludos

  4. Hola Fernando. Gracias por el articulo. Probé modificar el loop para excluir las categorias de la forma que tu dices en el tema Kubrick y funciona perfectamente, pero cuando lo intento en K2 que es el tema que estoy usando, me produce un error y el sitio deja de funcionar.

    Alguna idea de a que puede deberse?

  5. Hola, fijate que inserte el codigo que tu expones aqui, modificando las IDS que deseo excluir las cuales son 3 y 4 y resulta que no pasa nada al actualizar el archivo del tema.

    Te dejo mi index original por si me deseas ayudar, las ID´s que quiero excluir son las 3 y 4.

    Aqui pegue el codigo PHP del index en copypastecode
    http://www.copypastecode.com/36526/

    Gracas por su ayuda!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido