Seleccionar página

Se puede dar el caso en que necesites excluir una categoría del Blog de WordPress.

Por ejemplo, si quieres mostrar las entradas asociadas a esa categoría en otro apartado de tu web y no quieres incluir esas entradas en el blog “general”.

Podrías pensar también en utilizar custom post types, y crear un apartado específico para tus entradas, pero esto lleva un poco más de trabajo.

Código PHP para excluir una categoría

Lo primero es encontrar el ID (identificador único) de la categoría que quieres excluir.

Hay que ir a Entradas > Categorías y encontraremos el listado de categorías disponibles.

Si pasamos el puntero sobre la categoría que queremos excluir, aparece una url en la parte inferior izquierda, y si nos fijamos, dentro de esa url encontramos el ID.

Es el número que sigue a &tag_ID=, lo anotamos porque nos va a hacer falta a continuación.

Lo siguiente es localizar el fichero que necesitamos modificar accediendo por ftp, lo encontramos en /wp-content/themes/nombre-theme/.

Nos descargamos el fichero functions.php a nuestra máquina para hacer las modificaciones.

Antes de modificar el fichero functions.php de tu plantilla, debes hacer una copia de seguridad.

Al final del fichero pegamos el siguiente código, que lo que está diciendo es que cada vez que hacemos una búsqueda de entradas en la base de datos vamos a dejar fuera la categoría que le indicamos.

 function exclude_category($query) {
 if ( $query->is_home() ) {
  $query->set('cat', '-xx');
 }
 return $query;
 }
 add_filter('pre_get_posts', 'exclude_category');

Falta reemplazar xx por el identificador de la categoría que hemos averiguado antes. Es importante dejar el guión, sólo hay que cambiar xx.

Si ya lo tienes, está listo para subir el fichero y reemplazar el actual.

A partir de ese momento, no se mostrarán las entradas que tengan asociada la categoría en cuestión.

¿Sencillo verdad?

Conclusiones

A veces no es necesario complicarse la vida para conseguir lo que necesitamos.

 

¡Hasta Pronto!

 

Lux Your business &

Love Your Website!