我在wp_list_categories函数中给出了以下参数。
<?php wp_list_categories('show_option_all=All&hide_empty=0&title_li=¤t_category=All'); ?>
我希望“All”选项在任何类别列表中都可见。但是,由于默认情况下所有帖子都加载,因此current_category的样式也应该应用于“All”。但是,由于All没有类别ID,我不知道如何将current-cat类应用于'All'。
有什么建议吗?
答案 0 :(得分:1)
您可以将列表提取到变量中(将echo = 0添加到参数中),然后使用字符串替换插入自定义类。
更新
这样的事情:
<?php
function str_replace_once($needle , $replace , $haystack){
$pos = strpos($haystack, $needle);
if ($pos === false) {
return $haystack;
}
return substr_replace($haystack, $replace, $pos, strlen($needle));
}
$args = array( 'show_option_all' => 'All',
'hide_empty' => '0',
'title_li' => '',
'current_category' => 'All',
'echo' => '0');
$str = wp_list_categories($args);
$str = str_replace_once('<li>', '<li class="current-cat">', $str);
echo $str;
?>
答案 1 :(得分:0)
您可以使用 preg_replace 来消除一些复杂性。最后一个参数限制要替换的出现次数。
$list = wp_list_categories([
'show_option_all' => 'All',
'hide_empty' => false,
'title_li' => '',
'current_category' => 'All',
'echo' => false
]);
$list = preg_replace('/<li>/', '<li class="current-cat">', $list, 1);
echo $list;