У меня есть использование wp_list_categories чтобы создать список категорий и установить $ args, как показано ниже, для добавления класса «current-cat» к элементу текущей категории, все работает нормально, но когда я нажимаю «Все категории», я не могу выделить меню списка, потому что класс «current-cat» «не относится к пункту» Все категории «.
Как применить класс current-cat к «Все категории»?
Мои настройки
<ul>
<?php
$args = array(
'show_option_all' => 'All Categories',
'orderby' => 'id',
'style' => 'list',
'use_desc_for_title' => 0,
'hierarchical' => 0,
'title_li' => '',
'current_category' => 0
);
wp_list_categories( $args );
?>
</ul>
Вывод HTML
<уль> <li class = "cat-item-all"><a href = "http://example.com/">все категории</ а></ li> <li class = "cat-item cat-item-1 current-cat"><a href = "http://example.com/category/category-one/">Первая категория</ а></ li> <li class = "cat-item cat-item-2"><a href = "http://example.com/category/category-two/">Вторая категория</ а></ li> <li class = "cat-item cat-item-3"><a href = "http://example.com/category/category-three/">Третья категория</ а></ li> <li class = "cat-item cat-item-4"><a href = "http://example.com/category/category-four/">Четвертая категория</ а></ li> </ мкл>
Если вы не отображаете результаты и вместо этого сохраняете их в переменной, мы можем проверить, существует ли этот класс. А если этого не произойдет, значит, мы находимся в категории «Все».
Поэтому для достижения этой цели я сделал следующее:
$args = array(
'show_option_all' => 'All',
'title_li' => '',
'echo' => false, // dont echo the results
'taxonomy' => 'tribe_events_cat'
);
$categories = wp_list_categories($args); // store the results in a variable
if(strpos($categories,'current-cat') == false) { // check if the class exists
// add the class to the All item if it doesn't exist
$categories = str_replace('cat-item-all', 'cat-item-all current-cat', $categories);
}
echo $categories;
Вам придется изменить $ args в соответствии с вашими целями.
Других решений пока нет …