Ocultar categorías específicas del widget de categorías

19 jun 2015, 22:37:13
Vistas: 38.4K
Votos: 12

Estoy tratando de ocultar una gran cantidad de categorías de mi widget de categorías. He probado algunos plugins pero ninguno de ellos parece permitirme usar la opción desplegable. Investigué sobre el hook widget_categories_args y parece ser lo que necesito, pero no logro hacerlo funcionar.

Aquí está mi código

function widget_categories_args_filter( $cat_args ) {
    // Array de IDs de categorías a excluir
    $exclude_arr = array( 57,61,63,56,55,62,52,53,54,67,65 );

    if( isset( $cat_args['exclude'] ) && !empty( $cat_args['exclude'] ) )
        $exclude_arr = array_unique( array_merge( explode( ',', $cat_args['exclude'] ), $exclude_arr ) );
    $cat_args['exclude'] = implode( ',', $exclude_arr );
    return $cat_args;
}

add_filter( 'widget_categories_args', 'widget_categories_args_filter', 10, 1 );

Tomé ese código de aquí: https://codex.wordpress.org/Plugin_API/Filter_Reference/widget_categories_args

Estoy colocando esto en el archivo functions.php de mi tema. Eso no debería importar aunque la función esté configurada para plugins, ¿verdad?

7
Comentarios

Intenta aumentar el cuarto número a algo alto como 1000

s_ha_dum s_ha_dum
20 jun 2015 00:35:15

Esto funciona para mí con el widget de categorías incluido.

s_ha_dum s_ha_dum
20 jun 2015 02:54:33

@s_ha_dum ¿el cuarto número? ¿En la línea add_filter()?

FranticJ3 FranticJ3
22 jun 2015 17:21:08

Lo siento, el cuarto argumento. Tienes 1. Prueba con 1000. Como dije, esto funciona para mí, por lo que puede haber otra función interfiriendo. Establecer una prioridad alta podría darle a tu función la última palabra. ¿Estás usando el widget de categorías principal?

s_ha_dum s_ha_dum
22 jun 2015 17:25:52

@s_ha_dum sí, estoy usando el widget de categorías principal. Lo configuré en 10000 y todavía no los está ocultando.

FranticJ3 FranticJ3
22 jun 2015 17:58:31

Desactiva tus plugins y cambia el tema a uno incluido por defecto - uno de los Twenty (veintitantos). ¿Funciona el código entonces?

s_ha_dum s_ha_dum
22 jun 2015 18:03:50

@s_ha_dum cambió a Twenty Fifteen, lo actualizó, agregó el código y desactivó todos los plugins. Todavía no funciona para mí

FranticJ3 FranticJ3
23 jun 2015 18:28:50
Mostrar los 2 comentarios restantes
Todas las respuestas a la pregunta 5
2
14

Sé que esta publicación es bastante antigua, pero como me encontré con el mismo problema y este post apareció más arriba que uno con una solución, pensé en agregar esto, que funcionó para mí.

Fuente: http://coffeecupweb.com/how-to-exclude-or-hide-categories-from-category-widget-in-wordpress-sidebar/

// Ocultar categorías en el widget de categorías de WordPress
function excluir_categorias_widget($args){
    $excluir = "1,4,8,57,80";
    $args["exclude"] = $excluir;
    return $args;
}
add_filter("widget_categories_args","excluir_categorias_widget");
19 ene 2017 19:38:46
Comentarios

¡Puedo confirmar que esto funciona perfectamente en marzo de 2018! Consejo adicional: pasa el cursor sobre una categoría en la página de Categorías y busca el "tag_id" en el enlace en la parte inferior de tu navegador. Sí, ya sé que dice tag_id, pero aún así se refiere a la categoría.

Eric Hepperle - CodeSlayer2010 Eric Hepperle - CodeSlayer2010
3 mar 2018 22:37:04

Dic. 2020: ¡También puedo confirmar que esto funciona excelente! Todo el problema me hizo darme aún más cuenta de que la función de categoría a menudo se desvía de su enfoque centrado en el espectador por los temas y plugins.

Nora McDougall-Collins Nora McDougall-Collins
3 dic 2020 19:54:24
1

Esto funciona: https://gist.github.com/peltopiri/76e7d1143e33b424633114103cfae5ec

<?php
function exclude_woocommerce_widget_product_categories($widget_args) {
    //Insertar IDs de categorías excluidas aquí
    $excludes = array(12,33);
    $includes = explode(",",$widget_args['include']);

    $includes = array_filter($includes, function($value) use ($excludes) {
      return !in_array($value, $excludes);
    });
    $widget_args["include"] = implode(",", $includes);
    return $widget_args;
}
add_filter( 'woocommerce_product_categories_widget_dropdown_args', 'exclude_woocommerce_widget_product_categories');
add_filter( 'woocommerce_product_categories_widget_args', 'exclude_woocommerce_widget_product_categories');
18 sept 2018 18:19:50
Comentarios

Esto también funciona en las páginas de subcategorías.

O. Jones O. Jones
29 may 2021 00:57:25
0

Ocultar la categoría sin categorizar / predeterminada en WooCommerce:

Supongo que no soy el único que llegó a esta página buscando una forma de ocultar la categoría predeterminada / sin categorizar introducida en WooCommerce 3.3.

Si eres uno de ellos, en lugar de codificar manualmente el ID de la categoría que puede ser diferente en distintos entornos / instalaciones, puedes usar el siguiente fragmento de código, modificado del fragmento de Mike Jolley para ocultarla del widget de Categorías de Productos de WooCommerce:

<?php // ¡No incluir esto si ya está abierto!

/**
 * El código va en el archivo functions.php del tema.
 *
 * Si usas vista desplegable en lugar de vista jerárquica, 
 * enlaza al siguiente filtro en su lugar: 
 *      `woocommerce_product_categories_widget_dropdown_args`
 */
add_filter( 'woocommerce_product_categories_widget_args', 'custom_woocommerce_product_categories_widget_args' );

function custom_woocommerce_product_categories_widget_args( $args ) {
  $args['exclude'] = get_option( 'default_product_cat' );
  return $args;
}
9 jul 2018 11:07:44
0

Después de varias búsquedas y pruebas, ocultar categorías de publicaciones para elementos de lista y menús desplegables se realiza por separado ya que son llamados por diferentes IDs de filtro.

Para elementos de categoría en lista usa:

add_filter("widget_categories_args","TU_FUNCION_PERSONALIZADA");

Para elementos de categoría en menú desplegable usa:

add_filter("widget_categories_dropdown_args","TU_FUNCION_PERSONALIZADA");

Referencia: https://basicwp.com/exclude-categories-from-category-widgets-in-wordpress/

26 feb 2019 13:02:47
1

Pude ocultar una sola categoría usando CSS:

li.cat-item-1 {
    display: none;
}

Coloqué este fragmento de CSS en el "CSS adicional" de mi tema.

La categoría 1 es "Sin categoría", que es la que quería ocultar.

27 dic 2019 22:18:21
Comentarios

Para endulzar el trato, oculta las categorías directamente en el personalizador. Ahorra un paso al intentar hacer esto en la carpeta del tema.

klewis klewis
3 ago 2021 23:14:12