Filtrare "uncategorized" da tutti gli elenchi di categorie con un filtro in functions.php?
Vorrei aggiungere del codice al mio functions.php per intercettare tutte le chiamate a wp_list_categories() E the_category() in modo da escludere "uncategorized" e qualsiasi figlio di "uncategorized" (O cat_id 1). Vorrei anche limitare il numero di parole restituite nell'attributo "title" di ogni anchor della lista. Attualmente l'impostazione predefinita è $cat_args['use_desc_for_title'] = 1; ma sembra non sia possibile inserirlo nel filtro delle esclusioni qui sotto.
Sto usando il codice qui sotto che rimuove efficacemente le categorie indesiderate dagli elenchi che usano wp_list_categories, tuttavia, non le rimuove dagli elenchi derivati da the_category...
function my_list_terms_exclusions($exclusions,$args) {
// Ottiene tutti i figli della categoria con ID 1 (uncategorized)
$children = implode(',',get_term_children(1,'category'));
// Se ci sono figli, li aggiunge alla stringa di esclusione
$children = (empty($children) ? '' : ",$children");
// Aggiunge le esclusioni alla query SQL esistente
return $exclusions . " AND (t.term_id NOT IN (1{$children}))";
}
add_filter('list_terms_exclusions', 'my_list_terms_exclusions', 10, 2);?>

Finalmente sono riuscito a risolvere questo problema... Anche se ho dovuto impostare il filtro direttamente sul metodo widget_categories_args, quindi servono due istruzioni di filtro per farlo funzionare.
function my_categories_filter($cat_args){
$cat_args['title_li'] = '';
$cat_args['exclude_tree'] = 1;
$cat_args['exclude'] = 1;
$cat_args['use_desc_for_title'] = 0;
return $cat_args;
}
add_filter('widget_categories_args', 'my_categories_filter', 10, 2);
