Как проверить активную категорию

Вывожу в сайдбаре меню категорий:

<ul id="menu"> 
<?php foreach ( (get_categories('show_last_updated=0&orderby=count&hide_empty=0') ) as $category ) { if ( $category->category_parent == '0' ) { ?>
     <li><a href="<?php echo get_category_link($category->cat_ID); ?>"><?php echo $category->cat_name; ?></a>       
         <?php if (get_category_children($category->cat_ID) ) { ?>
         <ul>
             <?php wp_list_categories('orderby=count&hide_empty=0&title_li&child_of=' . $category->cat_ID); ?>
         </ul>
         <?php } ?>
     </li>
<?php } } ?>
</ul>

Подскажите, пожалуйста, как вставить class="current_cat" в пункт меню, чтобы можно было выделить ссылку на активную в данный момент категорию.

По видимому нужно выполнить проверку на предмет того, на странице какой категории находится пользователь.

Пыталась сделать проверку по аналогии с проверкой –
<li <?php if(is_home()) { ?> class="current_cat" <?php } ?>><a href="<?php echo get_option(‘home’); ?>/">Главная</a></li>

Не работает.

Помогите, плиз…

Не понятен вопрос. Класс current-cat и так возвращается ф-цией wp_list_categories.

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

Help Desk, при выводе списка категорий кодом, который я выложила выше, class="current_cat" не добавляется в html код.

Вот пример:

<ul id="menu">
<li><a href="">Film</a></li>
<li><a href="">Entertainment</a></li>
<li><a href="">Sports</a></li>
<li><a href="">Comedy</a></li>
</ul>

Если список категорий выводить стандартной функцией:
<?php wp_list_categories(‘depth=5&title_li=’); ?>

тогда class="current_cat" действительно возвращается ф-цией wp_list_categories.

Но, к сожалению, эта функция добавляет также class="children" к списку подкатегорий, а мне это не нужно.

Вопрос, по-прежнему, актуален – как выполнить проверку того, какая категория в данный момент активна?

Или, как избавиться от добавления движком class="children" к списку подкатегорий?

как избавиться от добавления движком class="children" к списку подкатегорий?

[quote]<?php
$CategoriesNoChildren = wp_list_categories("echo=0");
$CategoriesNoChildren = preg_replace( ‘children’ , ‘ ‘ , $CategoriesNoChildren );
echo $CategoriesNoChildren;
?>[/quote]
Не проверял, но, надеюсь, идею уловили.

Или тоже самое без правки темы (добавить в functions.php):
[quote]add_filter(‘wp_list_categories’, ‘CategoriesNoChildren’, 15);
function CategoriesNoChildren($output){
$output=preg_replace(‘children’,”,$output);
return $output;
}[/quote]
UPD: исправил опечатку в имени

Увы…

Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, ‘CategoriesNoChildren’ was given in Z:\home\localhost\www\wordpress.ru\wp-includes\plugin.php on line 166

Вы идею-то поняли?

Да, идею поняла – избавляемся от сласса children, а как ее реализовать не знаю.

замените preg_replace на str_replace

Спасибо, работает.

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