Подсчет постов в категориях меню WordPress

Подсчет постов в категориях меню WordPress

количество постов
Использование wp_nav_menu очень облегчает создание меню любой сложности с возможностью редактирование их структуры через админ-страницу. Но у таких меню есть небольшой недостаток, если добавлять в динамическое меню ссылки на категории сайта то в меню не отображается количество постов в категории.
Вывод количества постов у категорий в wp_naw_menu? как сделать?
Все довольно просто, при вставке в шаблоны динамических меню необходимо в качестве аргумента walker указать класс который будет считать у пункта меню с типом category количество постов.
В файл functions.php, расположенный в папке вашей темы, вставьте в самом низу перед ?> следующий код:

// Счетчик постов категорий в меню
  class Count extends Walker_Nav_Menu  {
         function start_el(&$output, $item, $depth, $args) {
          global $wp_query;
          $indent = ( $depth ) ? str_repeat( "t", $depth ) : '';
          $class_names = $value = '';
          $classes = empty( $item->classes ) ? array() : (array) $item->classes;
          $classes = in_array( 'current-menu-item', $classes ) ? array( 'current-menu-item' ) : array();
          $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
          $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args );
          $id = strlen( $id ) ? ' id="' . esc_attr( $id ) . '"' : '';
          $output .= $indent . '<li class="'.$item->title.' '.$class_names .'">';
          $attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
          $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
          $attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';
          $attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';
          $item_output = $args->before;
          $item_output .= '<a'. $attributes .'>';
          $countPostsCat='';
          if($item->object == 'category'){
               /*$cat = get_the_category($item->object_id); */
            $cats = get_categories(array('include'=>$item->object_id));
          if($cats[]->count>)
               {
               $countPostsCat='<count>'.$cats[]->count.'</count>';
          }
          }
          $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after.$countPostsCat;
          $item_output .= '</a>';
          $item_output .= $args->after;
          $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
         }
     }

А в место где должно распологаться меню всавте этот код:

<? wp_nav_menu( array('container'=> '','menu_class' => '', 'menu_id' => '','menu_class'=> 'menu', 'menu_id'=> 'menu','walker'=> new Count()) ); ?>

Вот и все) Желаю удачи.

Читайте также  Три простых и симпатичных шрифта.
Работаем с типами записей в WordPress 3.0... Одна из самых интересных фишек WordPress 3.0, это индивидуальные типы записей, вы можете добавлять не только Записи и Страницы, но и например Фильмы...
Карта сайта для WordPress в виде HTML страницы... Карта сайта для людей это обыкновенная html-страница с ссылками на все страницы вашего сайта, которые сгруппированные по категориям, это можно сказа...
Оптимизация MySql базы данных блога WordPress... Доброго здоровья всем читателям блога! Сегодняшняя тема очень важна для каждого вебмастера, а посему немедленно даю вам информацию по вопросу оптимиза...
Счетчик просмотров записи по ip адресу в WordPress... Для записи количества просмотров надо в файл functions.php в папке вашего шаблона добавить функцию приведенную ниже: function setPostViews($postID) {...

Сохрани, чтобы не потерять