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.

function excludeCat($query) {
if ( $query->is_home ) {
$query->set('cat', '-8,-12');
}
return $query;
}
add_filter('pre_get_posts', 'excludeCat');

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.

30 Comentarios
  1. Miguel 6 años

    Acabo de utilizarlo para excluir una categoría de noticias en mi blog. Funciona fenomenal, y muy fácil de insertar.
    Grcias por compartirlo.

    • Peter Olle 6 años

      Que bueno que te ayudó Miguel.

      Saludos.

  2. Luis M. 6 años

    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.

    • Peter Olle 6 años

      Gracias Luis, me alegro que te haya funcionado.

      Saludos.

  3. Gerardo 6 años

    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 !

    • Peter Olle 6 años

      Puedes usar algo como este plugin. Así asignas los accesos que tiene cada quien y a que secciones.

      Saludos.

      • Gerardo 6 años

        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 !

  4. Gerardo 6 años

    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 !!

    • Peter Olle 6 años

      Ese es otro tema, más tarde publico sobre ello.

      Saludos.

      • Gerardo 6 años

        ok te lo agradeceré !!

        • Peter Olle 6 años

          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.

          • Gerardo 6 años

            Muy bien, lo comentaré en el foro entonces dentro de unas horas, ya es de madrugada en México. 😀

  5. david chan 5 años

    gracias por el codigo, me sirvio de maravilla esta batallando en como excluir una categorio. gracias.

    • Peter Olle 5 años

      De nada, que bueno que te funcionó.

      Saludos.

  6. -José Antonio- 5 años

    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.

    • Peter Olle 5 años

      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.

  7. dany 5 años

    excelente muy bien Gracias

  8. juan 4 años

    Gracias, me ha servido y es muy simple, como a mi me gustan las cosas 😛

  9. Pepe 4 años

    Hola, luego de una ardua batalla por lograr, salí victorioso tras encontrar este articulo. Muchas gracias de por vida.

  10. Sandra 4 años

    y cómo puedo usar esta misma idea para ocultar una categoría del sidebar... (usando function.php)?

    Saludos

  11. alex 3 años

    Maravilloso y rápido....llevo toda la mañana con ello hasta que te he encontrado. saludos

    • Peter Olle 3 años

      Que bueno que te ayudó Alex!

  12. Agnieszka 3 años

    Me ha venido de perlas. justo lo que necesitaba! Mil gracias.

  13. Sebasweb 3 años

    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

  14. Charlie Martinez 2 años

    Hola! Sabés, ando necesitando excluir todas las noticias de una determinada categoría del widget de noticias recientes. Es posible? Saludos !!!

  15. german gittar 2 años

    perfecto!! gracias me funcionó

  16. Juan Aurelio Pecino Chacón 7 meses

    Pues no se... no lo consigo.. vale en todos los themas?

    • Autor
      Peter Olle 7 meses

      Si tu tema no modifica el comportamiento natural de WordPress si, entonces sería cosa de que le preguntes al desarrollador del mismo.

      Saludos.

  17. sebastián 2 semanas

    hola buenísmo. Cómo me doy cuenta del número de la categoría?

    • Autor
      Peter Olle 2 semanas

      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.

Contesta

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

*

Contacto

Si necesitas contactar para cualquier cosa, por favor envía tu mensaje a continuación.

Enviando
Copyright © 2017 Noticias Wordpress en Español. Todos los derechos reservados.

Inicia Sesión con tu Usuario y Contraseña

¿Olvidó sus datos?

X