Выделение категории «Все» в wp_list_categories - PullRequest
3 голосов
/ 22 сентября 2011

Я привел следующие аргументы в функции wp_list_categories.

<?php wp_list_categories('show_option_all=All&hide_empty=0&title_li=&current_category=All'); ?>

Я хочу, чтобы опция «Все» была видна в любой категории.Однако, поскольку по умолчанию загружаются все сообщения, стиль для current_category также должен применяться к «All».Однако, поскольку у All нет идентификатора категории, я не знаю, как применить класс current-cat к «All».

Есть предложения?

Ответы [ 2 ]

1 голос
/ 22 сентября 2011

Вы можете получить список в переменную (добавить echo = 0 к параметрам) и вставить пользовательский класс, используя строку replace.

Обновление:

Примерно так:

<?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;
?>
0 голосов
/ 11 января 2016

Вы можете использовать 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...