Excluir categorías del widget de WordPress

Widget de categorias de WordPressSi alguna vez has utilizado el widget de categorías que viene con WordPress, habrás comprobado que sirve para publicar una lista que incluye todas las categorías creadas, con la opción de especificar el número de entradas guardadas dentro de cada una, y mostrarlas en forma de lista o bien como desplegable.

Lo que no permite es excluir u ocultar categorías de esa lista, por lo que tendremos que utilizar otro sistema, como por ejemplo utilizar el widget “Menú personalizado” para añadir un menú a medida con las categorías que queremos mostrar, o bien instalar algún plugin que amplie las posibilidades de este widget.

Pero hay otra opción, que consiste en añadir parámetros a los filtros widget_categories_args y widget_categories_dropdown_args, para que se ejecuten antes de crear la lista. Así, si por ejemplo tenemos una sección con entradas privadas, podemos especificar el ID de esa categoría especial para que no aparezca en el widget.

Este código hace exactamente eso. Podemos incluirlo en el archivo functions.php del tema activo o mejor aun, añadirlo en un plugin de funciones, para no perderlo si cambiamos o actualizamos el tema de WordPress:

// -----------------------------------------------
// Excluir categorías del widget de WordPress
// -----------------------------------------------
function exclude_widget_categories($args) {

	// ID de la categoría que queremos excluir.
	// Si son varias, separar con comas: '25,32,65'
	$excluded = '25'; 

	$args['exclude'] = $excluded;
	return $args;

}
add_filter( 'widget_categories_args', 'exclude_widget_categories', 10, 1 ); // Si utilizamos el formato de lista
add_filter( 'widget_categories_dropdown_args', 'exclude_widget_categories', 10, 1 ); // Si utilizamos el formato desplegable

El número que identifica cada categoría lo podemos conseguir desde Entradas > Categorías. Si pulsamos o pasamos el cursor sobre la que nos interesa, veremos en la URL el parámetro que muestra este identificador.

El primer filtro (widget_categories_args) eliminará las categorías cuando configuramos el widget como lista, y el segundo (widget_categories_dropdown_args) afecta sólo al widget en modo desplegable. Podemos eliminar uno u otro, según el que vayamos a utilizar.

Entrada relacionada: Cómo proteger una categoría de WordPress con nombre de usuario y contraseña

Comentarios

  1. agustin

    Muchas gracias, funciona de maravilla.

  2. conchin

    Hola, quiero ocultar 2 categorías pero solo oculta una, la que pongo en primer lugar. Oculta la categoría 1 pero la 18 No.
    Me puedes ayudar? Gracias.

    // -----------------------------------------------
    // Excluir categorías del widget de WordPress
    // -----------------------------------------------
    function exclude_widget_categories($args) {
     
        // ID de la categoría que queremos excluir.
        // Si son varias, separar con comas: '25,32,65'
        $excluded = '1,18'; 
     
        $args['exclude'] = $excluded;
        return $args;
     
    }
    add_filter( 'widget_categories_args', 'exclude_widget_categories' );
    
  3. Daniel

    Hola Conchin.
    Lo acabo de probar tal como está aquí arriba y con la versión más reciente de WordPress (4.4) y me ha funcionado bien.

    Prueba poniendo la lista de IDs en un array, así:
    $excluded = array(’23’,’9′,’22’,’17’);

  4. conchin

    Hola: Parece que funciona.
    Tenía la versión 4.3 y rulaba bien, pero al actualizar a 4.4 ya no iba.
    Muchas gracias también por la rapidez en tu respuesta.
    Ahora tengo una duda, y es que estoy trabajando con el tema por defecto Twenty Fourteen. En el 4.4 trae una actualización del tema. He hecho muchos cambios y no sé si sería conveniente hacer la actualización, me temo que lo perdería todo. Que me recomiendas?
    Saludos

Y tú qué opinas?

Las URLs se convertirán en enlaces automáticamente. Tu dirección de email no se publicará ni se utilizará para enviar ningún tipo de información. Los mensajes que no aporten nada al tema que se trata en esta entrada se borrarán. Las imágenes que aparecen al lado de cada autor utilizan el servicio de Gravatar. Recuerda que puedes usar etiquetas HTML como <a href>, <code>, <em> o <strong> en los comentarios.

(necesario)

(opcional)