如何从自定义类别小部件中排除“未分类”?

时间:2010-11-23 作者:Scott B

下面的代码来自我的WP插件,该插件提供了一个过滤后的类别列表,不包括显示的“未分类”类别。然而,当用户从小部件设置选项中选择“显示层次结构”时,结果显示包括“未分类”。

考虑到我已将“exclude\\u tree”=>1放入$cat\\u args数组中。我错过了什么?

class My_Widget_Categories extends WP_Widget {

    function My_Widget_Categories() {
        $widget_ops = array( \'classname\' => \'widget_categories\', \'description\' => __( "filters out uncategorized categories" ) );
        $this->WP_Widget(\'my_categories\', __(\'my Categories\'), $widget_ops);
    }

    function widget( $args, $instance ) {
        extract( $args );
        $title = apply_filters(\'widget_title\', empty( $instance[\'title\'] ) ? __( \'Categories\' ) : $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\'] = __(\'Select Category\');
            wp_dropdown_categories(apply_filters(\'widget_categories_dropdown_args\', $cat_args));

1 个回复
最合适的回答,由SO网友:hakre 整理而成

很难从你的代码中说出来。这个exclude_tree 的参数wp_dropdown_categories() 在法典中没有记载。它正在利用get_categories() 这根本没有列出它。

如果您没有属于该类别的孩子,可以考虑使用exclude 参数替代/附加。如果可行的话,就测试一下。这可能会帮你省去处理wordpress中的一些错误的麻烦。过去几年,Wordpress在处理层次结构方面表现不佳。

一些背景信息:Beta 2.8.2 - wp_list_categories buggy hierarchy - Ticket #9999; With wp_list_categories child categories not excluded when parents are excluded - Ticket #8614

结束

相关推荐