Come escludere "non categorizzato" dal widget personalizzato delle categorie?
Il codice qui sotto proviene dal mio plugin WP che fornisce un elenco filtrato di categorie escludendo la categoria "non categorizzato" dalla visualizzazione. Tuttavia, quando l'utente seleziona "Mostra gerarchia" dalle opzioni di configurazione del widget, la visualizzazione risultante include "non categorizzato".
Considerando che ho inserito 'exclude_tree' => 1 nell'array $cat_args. Cosa mi manca?
class My_Widget_Categories extends WP_Widget {
function My_Widget_Categories() {
$widget_ops = array( 'classname' => 'widget_categories', 'description' => __( "filtra le categorie non categorizzate" ) );
$this->WP_Widget('my_categories', __('mie Categorie'), $widget_ops);
}
function widget( $args, $instance ) {
extract( $args );
$title = apply_filters('widget_title', empty( $instance['title'] ) ? __( 'Categorie' ) : $instance['title']);
$c = $instance['count'] ? '1' : '0';
$h = $instance['hierarchical'] ? '1' : '0';
$d = $instance['dropdown'] ? '1' : '0';
echo $before_widget;
if ( $title )
echo $before_title . $title . $after_title;
$cat_args = array('orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h, 'exclude_tree' => 1);
if ( $d ) {
$cat_args['show_option_none'] = __('Seleziona Categoria');
wp_dropdown_categories(apply_filters('widget_categories_dropdown_args', $cat_args));

È difficile dirlo dal tuo codice. Il parametro exclude_tree
di wp_dropdown_categories()
è piuttosto poco documentato nel codex. Fa uso di get_categories() che non lo elenca affatto.
Se non hai elementi figli all'interno di quella categoria, puoi considerare di usare il parametro exclude
invece o in aggiunta. Prova a verificare se funziona. Potrebbe risparmiarti il problema di dover gestire alcuni bug in WordPress alla fine. WordPress non è molto bravo a gestire le gerarchie negli ultimi anni.
Alcune informazioni di background: Beta 2.8.2 - wp_list_categories gerarchia difettosa - Ticket #9999; Con wp_list_categories le categorie figlie non vengono escluse quando i genitori sono esclusi - Ticket #8614

grazie, ci saranno sicuramente nodi figli sotto "non categorizzato". Sembra che exclude_tree funzioni su tutto tranne che sulla visualizzazione gerarchica. Detto questo, aggiungere $cat_args['exclude'] = 1 risolve il problema!
