2017-02-13 5 views
1

У меня есть небольшой скрипт, который отображать любые категории, которые содержат сообщения и отображает их (как маленькое меню)Текущая cateogry в WordPress меню категории

<?php 
    $categories = get_categories(array(
     'orderby' => 'name', 
     'order' => 'ASC' 
)); 
    echo '<a class="blog-panel-cat-menu bg-color-1" href="' . get_permalink(get_option('page_for_posts')) . '">All</a>'; 
    foreach($categories as $category) { 
     if ($category->count > 0){ 
     $category_link = sprintf( 
      '<a class="blog-panel-cat-menu bg-color-1" href="%1$s" alt="%2$s">%3$s</a>', 
      esc_url(get_category_link($category->term_id)), 
      esc_attr(sprintf(__('View all posts in %s', 'textdomain'), $category->name)), 
      esc_html($category->name) 
     ); 
     echo $category_link; 
     } 
    } 
?> 

При нажатии на любой ссылке он будет перенаправлять на страницу, которые показывают посты для этой категории, например mywebsite/news/category/blog/ или mywebsite/news/category/news/ (mywebsite/news является блог Домашняя страница, которая отображает все категории)

Когда я на mywebsite/news/category/blog/ я хочу «блог» ссылка в меню, чтобы иметь класс blog-cat-focus после текущего класса в петля foreach как это <a class="blog-panel-cat-menu bg-color-1 blog-cat-focus" href="%1$s" alt="%2$s">%3$s</a>

ответ

0

Попробуйте этот код. Добавлены еще две строки для проверки текущей категории.

<?php 
    $categories = get_categories(array(
     'orderby' => 'name', 
     'order' => 'ASC' 
)); 
$category = get_category(get_query_var('cat')); 
    echo $cat_id = $category->cat_ID; 
    echo '<a class="blog-panel-cat-menu bg-color-1" href="' . get_permalink(get_option('page_for_posts')) . '">All</a>'; 
    foreach($categories as $category) { 
     if ($category->count > 0){ 
      $cust_class = ''; 
      if($category->term_id==$cat_id){$cust_class = 'blog-cat-focus';} 
     $category_link = sprintf( 
      '<a class="blog-panel-cat-menu bg-color-1 %4$s>" href="%1$s" alt="%2$s">%3$s</a>', 
      esc_url(get_category_link($category->term_id)), 
      esc_attr(sprintf(__('View all posts in %s', 'textdomain'), $category->name)), 
      esc_html($category->name), 
      $cust_class 

     ); 
     echo $category_link; 
     } 
    } 
?> 
+0

Блестящий! Спасибо! – snookian

+0

Рад узнать, что это сработало для вас. –

Смежные вопросы