Nascondere categorie specifiche dal widget delle categorie
Sto cercando di nascondere un gran numero di categorie dal mio widget delle categorie. Ho provato alcuni plugin ma nessuno di essi sembra permettermi di utilizzare l'opzione a tendina. Ho esaminato l'hook widget_categories_args e sembra essere quello che voglio, ma non riesco a farlo funzionare.
Ecco il mio codice
function widget_categories_args_filter( $cat_args ) {
$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 );
Ho preso questo codice da qui: https://codex.wordpress.org/Plugin_API/Filter_Reference/widget_categories_args
Sto inserendo questo nel file functions.php del mio tema. Non dovrebbe essere un problema anche se la funzione è impostata per i plugin, giusto?
Sono consapevole che questo post sia piuttosto vecchio, ma dato che mi sono imbattuto nello stesso problema e questo post è apparso più in alto rispetto a uno con una soluzione, ho pensato di aggiungere questa soluzione, che ha funzionato per me.
Fonte: http://coffeecupweb.com/how-to-exclude-or-hide-categories-from-category-widget-in-wordpress-sidebar/
//Nascondi categorie dal widget delle categorie di WordPress
function exclude_widget_categories($args){
$exclude = "1,4,8,57,80";
$args["exclude"] = $exclude;
return $args;
}
add_filter("widget_categories_args","exclude_widget_categories");

Posso confermare che funziona perfettamente a marzo 2018! Consiglio bonus: passa il mouse sopra una categoria nella pagina delle Categorie e cerca il "tag_id" nel link in fondo al tuo browser. Sì, lo so che dice tag_id, ma si riferisce comunque alla categoria.

Questo funziona: https://gist.github.com/peltopiri/76e7d1143e33b424633114103cfae5ec
<?php
function exclude_woocommerce_widget_product_categories($widget_args) {
//Inserisci qui gli ID delle categorie da escludere
$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');

Nascondi la categoria non categorizzata/predefinita in WooCommerce:
Immagino di non essere l'unico ad essere arrivato su questa pagina cercando un modo per nascondere la categoria predefinita/non categorizzata introdotta in WooCommerce 3.3.
Se sei uno di loro, invece di codificare manualmente l'ID della categoria che potrebbe essere diverso in ambienti/installazioni diverse, puoi utilizzare il seguente snippet, modificato da lo snippet di Mike Jolley per nasconderla dal widget Categorie prodotti di WooCommerce:
<?php // Non includere questo se è già aperto!
/**
* Il codice va nel file functions.php del tema.
*
* Se usi la vista a discesa invece di quella gerarchica,
* aggancia il seguente filtro invece:
* `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;
}

Dopo diverse ricerche e test, nascondere le categorie dei post per gli elementi dell'elenco e per il menu a discesa viene fatto separatamente poiché vengono chiamati da diversi ID di filtro.
Per gli elementi della categoria nell'elenco usa
add_filter("widget_categories_args","TUA_FUNZIONE_PERSONALIZZATA");
Per gli elementi della categoria nel menu a discesa usa
add_filter("widget_categories_dropdown_args","TUA_FUNZIONE_PERSONALIZZATA");
Riferimento: https://basicwp.com/exclude-categories-from-category-widgets-in-wordpress/
