WordPress wp_list_categories, как выделить & quot; Все категории & quot;

У меня есть использование 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>
</ мкл>

2

Решение

Если вы не отображаете результаты и вместо этого сохраняете их в переменной, мы можем проверить, существует ли этот класс. А если этого не произойдет, значит, мы находимся в категории «Все».

Поэтому для достижения этой цели я сделал следующее:

$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 в соответствии с вашими целями.

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]