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.
Índice de contenidos
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' ); } }
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
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?
Otra manera sería utilizando "continue"….
.
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
Muy útil, muchas gracias por la información!
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?
Perfecto! Muy útil! Gracias!
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!
Que bueno conseguir esta info cuando la andas buscando!. Mil, gracias!
Genial! mucho más limpio que no instalar más plugins en el WP! muchas gracias!