Активное категория в меню при просмотре записи из этой категории

http://wordpress.org/extend/ – пример, где выделена Extend
Что нужно получить, чтобы тоже была выделена.
http://wordpress.org/extend/plugins/
http://wordpress.org/extend/themes/

Нашел это:

        <li<?php
                if (is_category('Design') || in_category('10') && !is_single())
                {
                echo " id=\"current\""; 
                }?>>
                <a href="<?php bloginfo('url') ?>/category/design">Design</a>
        </li>

Здесь: http://codex.wordpress.org/Dynamic_Menu_Highlighting

Но не работает должным образом.

Ю.Б. как-то на форуме публиковал:
в functions.php
[code- //на странице одной записи подсвечивается категория – Ю.Б.
add_filter(‘wp_list_categories’,’ccats’);
function ccats($list) {
if ( ! is_single() ) return $list;
foreach((get_the_category()) as $category) {
$temp
= $category->cat_ID;
}
$temp = ‘/(cat-item-(‘.join(‘|’,$temp).’))[ |"]/’;
$list = preg_replace($temp,’ current-cat $1"’,$list);
return $list;
}[/code]
больше ничего делать не надо, разве что css класс current-cat обозначить в стилях, пример работы — у меня в блоге (на беж. вкладке: wordpress и-ха-ха-ха! Маразмы и .т.д.)

Действительно работает. Благодарю.

Понравилась фраза: "больше ничего делать не надо".
Так радует глаз ленивого программиста 🙂

Очень логичное решение, обязательно добавлю в свой стандартный набор функций для WP

В версии 2.7 не получилось использовать данное решение – сайт полностью отрубается. Наверно, я неправильно код размещаю.

Наверное. Для наглядности functions.php от Темы classic:

<?php

// можно свой код ставить тут

if ( function_exists('register_sidebar') )
    register_sidebar(array(
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
        'after_widget' => '</li>',
        'before_title' => '',
        'after_title' => '',
    ));

// или тут

?>

Ни до <?php, ни после ?> не должно быть ничего: ни пустых строк, ни пробелов, на BOMа, ни какого-либо кода.

Разобрался – благодарю, Ю.Б.

Спустя почти год потребовалось подсвечивать статьи из подкатегорий категорий, которые в меню 🙂
Вдруг у кого завалялся код 🙂

СКажите, где у меня ошибка? Категории подсвечиваются только в архивах категорий, в сингле нет

<?php
add_filter(‘wp_list_categories’,’ccats’);
function ccats($list) {
if ( ! is_single() ) return $list;
foreach((get_the_category()) as $category) {
$temp[] = $category->cat_ID;
}
$temp = ‘/(cat-item-(‘.join(‘|’,$temp).’))[ |"]/’;
$list = preg_replace($temp,’ current-cat $1"’,$list);
return $list;
}
?>

Категории подсвечиваются только в архивах категорий, в сингле нет

Только что проверил – код работает, класс current-cat добавляет (WP3.1.2, TwentyTen, виджет "рубрики")

СКажите, где у меня ошибка?

Никогда так не ставьте вопрос, если не хотите нарваться на ответ.

Для тех, кто еще не знает, классический программерский анекдот.

Приходит ламер к хакеру, показывает листинг программы и спрашивает:
– Где у меня ошибка?
Хакер, бегло взглянув на код, отвечает:
– В ДНК.

У меня не добавляет.

http://www.dietplan.ru/fit/akvajrobika-tancuyut-vse/ нет current-cat

http://www.dietplan.ru/fit/ – есть current-cat

Может, в Functions.php еще что-то нужно писать?

Может, в Functions.php еще что-то нужно писать?

Приведенный код и нужно. Только лучше без собственных <?php и ?>, а внутрь уже имеющихся.

На Темах, которые используют какой-то свой специфический способ получения списка рубрик или используют тот же хук, может и не сработать.

А у меня functions совершенно пустой. Я просто поставила туда ваш код

Anonymous
Отправить
Ответ на: