присвоение «активного» класса навигации - wordpress - PullRequest
1 голос
/ 30 августа 2009

Мне нужно назначить «активный» класс для навигации основного уровня, отображаемой в wordpress.

Вот мой HTML:

    <li><a href="/">Home</a></li>
    <?php wp_list_pages('title_li=&exclude=21'); ?>

Ответы [ 2 ]

2 голосов
/ 04 сентября 2009

WordPress автоматически добавляет соответствующие классы в элементы списка, которые создаются с помощью функции wp_list_pages (). Например, он добавит класс current_page_item на страницу, которую вы сейчас просматриваете, что позволит вам по-разному оформить этот конкретный элемент списка.

Это работает только для страниц, а afaik НЕ работает для сообщений. Тем не менее, есть немного хакерский способ обойти это. Если у вас есть список сообщений из вашего цикла, у каждого сообщения будет класс с post - ## -, где ## - идентификатор сообщения (при условии, что вы используете функцию get_post_class () или аналогичную)

Вы также можете получить идентификатор текущего сообщения, отображаемого:

Вне списка выводимых вами сообщений, желательно в header.php, есть:

$this_posts_id = $post->ID;

Затем внутри цикла списка создаваемых вами сообщений:

if($this_posts_id == $post->ID;){echo "current";}

или что-то подобное!

Надеюсь, это поможет

2 голосов
/ 30 августа 2009

См. WP Codex для добавления классов / идентификаторов в ваш шаблон wp:

<li<?php 
if (is_home()) { 
echo " class=\"active\"";
}
?>><a href="/">Home</a></li>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...