Con la siguiente función vamos a ver de que manera podemos excluir una o varias categorías de nuestra página de inicio en una instalación de WordPress.
Vamos a crear un ejemplo que podría suceder con un proyecto real. Estamos desarrollando un sitio web para un cliente y este necesita tener dos secciones de noticias, una principal que aparece en portada y otra para publicar noticias de cierto tipo, pero separadas de portada. Es solo un caso de ejemplo y puede haber muchas variantes, pero con la siguiente función podríamos solucionar el problema.
Por omisión WordPress publica todas las noticias en portada o en la hoja inicial de nuestro sitio y para excluir una o varias categorías podemos utilizar el siguiente código en nuestro archivo functions.php.
Como primer y único paso abrimos nuestro archivo functions.php y pegamos el siguiente código.
[php]
function excludeCat($query) {
if ( $query->is_home ) {
$query->set(‘cat’, ‘-8,-12’);
}
return $query;
}
add_filter(‘pre_get_posts’, ‘excludeCat’);
[/php]
En el código se están señalando las categorías numero «ocho» y «doce» para ser excluidas de nuestra página de inicio en WordPress y puedes tener solamente una o agregar todas las que quieras.
Si por ejemplo anulamos la categoría «eventos» de portada, podríamos tener en el menú un enlace que lleve directamente a esa categoría, en donde solo mostrará noticias de eventos, sin embargo, no serán mostradas en portada.
¿Tiene sentido?
Si no sabes como utilizar o en donde se encuentra tu archivo functions.php de tu tema para WordPress, aquí lo explico más a detalle.
Con este sencillo código podemos excluir una o varias categorías de la pagina inicial y esto no significa que esas publicaciones desaparezcan o sean borradas, lo único que sucede es que se ocultan de portada, pero siguen siendo accesibles desde la categoría como tal o por ejemplo desde el buscador.
Hay varias formas de hacer esto, por ejemplo yo en uno de mis proyectos, utilizo dos archivos single.php y uno de ellos, esta desarrollado exclusivamente para una categoría. Con esto se puede tener completamente dos formatos distintos para un tipo de noticias, con diferente contenido, otras opciones y completamente diferentes a todas las demás.
Creo que es una función muy sencilla que puede ser de mucha utilidad, la cual espero que puedan aprovechar para alguno de sus proyectos.
Acabo de utilizarlo para excluir una categoría de noticias en mi blog. Funciona fenomenal, y muy fácil de insertar.
Grcias por compartirlo.
Que bueno que te ayudó Miguel.
Saludos.
Muy buen tutorial!
lo he realizado en mi web y funciona muy bién.
llevaba tiempo buscando algo así. esto me facilitará mucho las cosas en mis próximos proyectos.
Gracias.
Gracias Luis, me alegro que te haya funcionado.
Saludos.
Hola.
Ahora a mi surge una ocurrencia, en realidad es necesidad que no he visto como solucionar.
Lo que quiero hacer es excluir un usuario en la lista de usuarios, para que no sea visible y no se pueda modificar.
Habrá forma de hacerlo?.
Saludos !
Puedes usar algo como este plugin. Así asignas los accesos que tiene cada quien y a que secciones.
Saludos.
Ya lo probé y no es exactamente lo que busco. Ya que este plugin bloque el acceso pero a toda la sección de usuarios, y lo yo quiero es simplemente ocultar un único usuario en la lista de usuarios, ya sea con codigo css o php, pero no se cómo hacerlo, igual que quiero ocultar en el menú de la pagina el publico la opcion Registrate a los usuarios ya registrados osea a los que tienen iniciado sesión y no tengo mucha idea de como lograrlo. Gracias ! Saludos !
Bueno lo de ocultar un usuario en la lista de usuarios ya lo logre, con css con un display:none a la id del usuario que quería ocultar. A lo mejor pueda una mejor opción, pero por el momento se ajusta a lo que quería.
Ahora solo me queda lo de como ocultar en el Menú la opción Registrate a los que ya se registraron y tienen iniciado sesión. Espero una ayuda.. Gracias !!
Ese es otro tema, más tarde publico sobre ello.
Saludos.
ok te lo agradeceré !!
Aunque comentas que viene en tu menú, como depende mucho del theme que utilices, lo publicaré de forma natural, es decir, si tu pones el registro por ejemplo en la barra lateral, pero si viene integrado en tu Theme y directamente en el menú, puede que sea diferente.
Si quieres ayuda exacta de como hacerlo en tu Theme, entra arriba al foro y ahí te ayudo para que salga exacto como quieres.
Saludos.
Muy bien, lo comentaré en el foro entonces dentro de unas horas, ya es de madrugada en México. 😀
gracias por el codigo, me sirvio de maravilla esta batallando en como excluir una categorio. gracias.
De nada, que bueno que te funcionó.
Saludos.
Hola saludos mil.
Antes de encontrar tu post utilizaba un código que si ocultaba algunas categorias pero me entorpeció la paginación.
Me encontré tu post con el código que propones y decidé utilizarlo. Me funcionó ocultando las categorías que quería y la paginación no se afectó, pero me dí cuenta que el witget de entradas recientes no muestra los post ocultos.
¿hay algún remedio para ésto? es que en el witget ENTRADAS RECIENTES SI QUIERO QUE LOS MUESTRE. De antemano te agradezco.
Si es la portada los esconde. No creo que tenga caso esconderlos en portada para mostrarlos en portada en un Widget, porque al final no los estas escondiendo. ¿Me explico?
Depende de que es lo que quieras hacer y la razón de eso para ver si se puede hacer otra cosa.
Saludos.
excelente muy bien Gracias
Gracias, me ha servido y es muy simple, como a mi me gustan las cosas 😛
Hola, luego de una ardua batalla por lograr, salí victorioso tras encontrar este articulo. Muchas gracias de por vida.
y cómo puedo usar esta misma idea para ocultar una categoría del sidebar… (usando function.php)?
Saludos
Maravilloso y rápido….llevo toda la mañana con ello hasta que te he encontrado. saludos
Que bueno que te ayudó Alex!
Me ha venido de perlas. justo lo que necesitaba! Mil gracias.
Gracias por tu post! muy bien comentado y fácil de implementar!
Solo una sugerencia:
Al poner el código en vez de poner el número de la categoría, yo ponia el NOMBRE de la categoría por lo cual, nunca me iba a funcionar… la recomendación es que puedes especificar que se tiene que poner el numero, porque en la redacción quedaría como que puedes poner el nombre y confunde…
Para quienes no saben como saber el numero de su categoria, solo basta con poner el mouse en la categoria y en la parte inferior del explorador donde se ve el vinculo van a ver el numero despues de las letras ID … espero haberme hecho entender!
Saludos y mil gracias de nuevo!!
@sebasweb
Hola! Sabés, ando necesitando excluir todas las noticias de una determinada categoría del widget de noticias recientes. Es posible? Saludos !!!
perfecto!! gracias me funcionó
Pues no se… no lo consigo.. vale en todos los themas?
Si tu tema no modifica el comportamiento natural de WordPress si, entonces sería cosa de que le preguntes al desarrollador del mismo.
Saludos.
hola buenísmo. Cómo me doy cuenta del número de la categoría?
En la administración si pones el mouse sobre una de ellas, te sale en la barra de estado. Al editarlas también te sale.
Saludos.