使用wp_list_Categories自定义遍历添加ul类

时间:2013-09-22 作者:fightstarr20

我正在努力实现一些看似简单但却让我头疼的事情。我正在使用wp\\U list\\U categories列出我的类别,这给了我这个。。。

<ul>
<li>Fruit</li>
<li>Vegetables</li>
<li>Tinned Goods</li>
<li>Dairy Products</li>
</ul>
我只想使用walker函数向ul和li添加一个类,我的函数如下所示。。。。

class Walker_Simple_Example extends Walker {  
    var $db_fields = array( \'parent\' => \'parent_id\', \'id\' => \'object_id\' );  

    function start_lvl(&$output, $depth=1, $args=array()) {  
        $output .= "\\n<ul class=\\"product_cats\\">\\n";  
    }  

    function end_lvl(&$output, $depth=0, $args=array()) {  
        $output .= "</ul>\\n";  
    }  

    function start_el(&$output, $item, $depth=0, $args=array()) {  
        $output .= "<li class=\\"item\\">".esc_attr( $item->name );
    }  

    function end_el(&$output, $item, $depth=0, $args=array()) {  
        $output .= "</li>\\n";  
    }  
}  
这对li项目很有效,并为它们提供了一个“项目”类,但ul类没有出现。有人能看出我错在哪里吗?

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

您应该扩展Walker_Category 不是主要的Walker类。

class Walker_Simple_Example extends Walker_Category {  

    function start_lvl(&$output, $depth=1, $args=array()) {  
        $output .= "\\n<ul class=\\"product_cats\\">\\n";  
    }  

    function end_lvl(&$output, $depth=0, $args=array()) {  
        $output .= "</ul>\\n";  
    }  

    function start_el(&$output, $item, $depth=0, $args=array()) {  
        $output .= "<li class=\\"item\\">".esc_attr( $item->name );
    }  

    function end_el(&$output, $item, $depth=0, $args=array()) {  
        $output .= "</li>\\n";  
    }  
}  

wp_list_categories(array(\'walker\'=> new Walker_Simple_Example));
现在这确实管用了。product_class 应用于子级ul但是您的walker并没有保留很多默认功能。

如果要将类指定给父类<ul>, 这有点太复杂了。那个<ul> 来自wp_list_categories function itself, 不是来自步行者。禁用您似乎没有使用的“标题”,并写入包装器<ul>.

echo \'<ul class="product_cats">\';
  wp_list_categories(array(\'title_li\'=> false));
echo \'</ul>\';

结束

相关推荐

Grouping categories by genre

我的wordpress视频博客有几个类别。假设该类别可以分为几个类别,例如动作、恐怖、神秘,另一个类别属于动作、恐怖、浪漫如何将类别分为不同的类型?因为在最基本的结构中,我们将帖子分类。现在我想把类别分成不同的类别然后可以通过url(例如)在流派中显示类别http://www.domain.com/genre/actions 它将列出其中的所有类别。下面是一个具有此功能的示例站点http://www.anime44.com/anime-genre/Fantasy