Come escludere "non categorizzato" dal widget personalizzato delle categorie?

23 nov 2010, 16:43:31
Visualizzazioni: 3.12K
Voti: 0

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));
1
Commenti

Il codice non sembra completo, quindi è difficile individuare l'errore.

hakre hakre
23 nov 2010 17:04:26
Tutte le risposte alla domanda 1
2

È 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

23 nov 2010 17:07:16
Commenti

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!

Scott B Scott B
23 nov 2010 17:14:53

non categorizzato ha sicuramente figli e sono comunque riuscito a far funzionare exclude. Almeno è così che funziona su 3.01

Scott B Scott B
23 nov 2010 17:30:15