Ocultar categorías específicas del widget de categorías
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?

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");

¡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.

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');

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;
}

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/
