Выделите текущую категорию в wordpress

Меня интересует как выделить категорию в которой я нахожусь - с "текущим" классом в шаблоне. Проблема усугубляется тем, что список категорий извлекается не из базы данных WordPress (там же, я так понимаю, они хранятся?), то есть - напрямую из HTML... Как сделать следующий код :

код:

<ul>
    <li class="blabla">
        <a>1</a>
    </li>
    <li class="blabla">
        <a>2</a>
    </li>
    <li class="blabla">
        <a>3</a>
    </li>
</ul>

код должен быть динамическим, например, когда я перейду в категорию «2», к «li» будет добавлен класс «текущий»:

код:

<ul>
    <li class="blabla">
        <a>1</a>
    </li>
    <li class="blabla current">
        <a>2</a>
    </li>
    <li class="blabla">
        <a>3</a>
    </li>
</ul>

Я пытался читать кодекс, но у меня есть две проблемы - я плохо разбираюсь в php и, самое главное, плохо читаю по-английски.

Я искренне извиняюсь за ломаный английский, с которым я задал "тот" вопрос


person user1103744    schedule 08.04.2012    source источник


Ответы (2)


Я не уверен, понимаю ли я ваш вопрос, но, исходя из того, что вы сказали, вы можете использовать css.

Пример

/* This will highlight your menu item gray if it has current in its class attribute*/
.current {
    background:#555;
}

Если вам просто нужно меню категорий, вы можете использовать виджет категорий Wordpress. Он создает меню со списком всех категорий. Если вы нажмете на категорию, она будет иметь класс current-cat. Это происходит только тогда, когда вы находитесь в представлении списка фильтров категорий, поэтому, если вы нажмете на сообщение с этой категорией, в нем не будет написано «текущая кошка».

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


Вот как это сделать в php, если вы не хотите использовать виджет. Он делает в основном то же самое, но у вас больше свободы, где вы хотите его разместить.

Это справочная страница: http://codex.wordpress.org/Template_Tags/wp_list_categories.

По сути, все, что вам нужно, это эта функция. Просто поместите этот фрагмент кода там, где вы хотите, чтобы ваши категории отображались:

<?php echo wp_list_categories() ?> 

Это должно создать базовый html-список всех категорий. Он также установит класс текущего кота, если вы находитесь в представлении архива категорий.

Если вы хотите переопределить поведение текущей категории, описанное выше, вы также можете заставить меню выбирать текущую категорию на основе идентификатора выбранной вами категории. Таким образом, в этом примере он добавит класс current-cat в категорию с идентификатором три.

<?php echo wp_list_categories(array('current_category' => 3)) ?>
person Gohn67    schedule 08.04.2012
comment
Я отлично знаю html и css - хочу знать, как добавить то же самое. текущий в html - person user1103744; 08.04.2012
comment
Что вы используете для создания списка категорий? Генератор навигационного меню Wordpress создает множество переменных класса, некоторые из которых можно использовать текущие. - person Gohn67; 08.04.2012
comment
Хм, кажется, теперь я кое-что понял. У вас есть меню, которое не создается Wordpress, и вы хотите знать, как определить, какой пункт меню выбран в данный момент? Вы хотели, чтобы это было только для просмотра категории или если сообщение находится и в этой категории? - person Gohn67; 08.04.2012

person    schedule
comment
ваш ответ такой же, как у @Gohn67, и я думаю, что разница только в шестнадцатеричном коде. - person AdityaDees; 03.06.2021