Добавить в произвольное меню категорий, количество в них постов
У меня есть обычный вывод меню с рубриками.
но хотелось бы к ним добавить количество постов в них а именно в самом меню к каждому <li> добавлялось бы значение. подскажите как это сделать ?Вот упрощенная версия
<?php class Count_Walker extends Walker_Nav_Menu { function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { $indent = ( $depth ) ? str_repeat( "\t", $depth ) : ''; $class_names = $value = ''; $classes = empty( $item->classes ) ? array() : (array) $item->classes; $classes[] = 'menu-item-' . $item->ID; $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args ) ); $class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : ''; $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args ); $id = $id ? ' id="' . esc_attr( $id ) . '"' : ''; $output .= $indent . '<li' . $id . $value . $class_names .'>'; $atts = array(); $atts['title'] = ! empty( $item->attr_title ) ? $item->attr_title : ''; $atts['target'] = ! empty( $item->target ) ? $item->target : ''; $atts['rel'] = ! empty( $item->xfn ) ? $item->xfn : ''; $atts['href'] = ! empty( $item->url ) ? $item->url : ''; $atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args ); $attributes = ''; foreach ( $atts as $attr => $value ) { if ( ! empty( $value ) ) { $value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value ); $attributes .= ' ' . $attr . '="' . $value . '"'; } } $item_output = $args->before; $item_output .= '<a '. $attributes .'>'; $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after; if ($item->hasChildren && $depth == 0) { $item_output .= '</a>'; }elseif($item->type == 'taxonomy'){ $cat = get_category( $item->object_id); $item_output .= ' ('.$cat->count.')</a>'; } else { $item_output .= '</a>'; } $item_output .= $args->after; $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); return; } }
Работает
Вам нужно добавить количество записей в админке или во внешней части сайта?
Мне нужно во внешней части, желательно добавить их через functions.php
Я решил эту задачу вот таким способом:
<nav class="uk-navbar-container" uk-navbar> <div class="uk-navbar-center"> <?//= $cases ?> <ul class="uk-navbar-nav uk-text-center"> <?php $mycats = wp_list_categories('show_count=1&title_li=&echo=0'); $mycats = str_replace(array('</a>','(',')'), array('<span class="uk-label uk-label-yellow color-black uk-margin-small-left">','','</span></a>'), $mycats); echo $mycats; ?> </ul> </div> </nav>
но не очень удобно. хотелось бы сделать через — ‘walker’ => new WordPressUikitMenuWalker(‘navbar’),

Готового решения у меня нет, написать его смогу если только позже.
А пока посмотрите в сторону вот этих решений:
https://gist.github.com/hansspiess/6823797
Если не получится, или получится напишите пожалуйста. Если не выйдет, то напишу.
Версия с Bootstrap меню работает но выдает много лишних ошибок из-за не совместимости с моим для UiKit.
Немного не могу допилить под себя. Если не затруднит, возможно его доработать под UiKit — http://monopixel.ru/walker-uikit.zip
Так же он адаптирован под uikit 2, если можно переделать выпадающее меню поп Uikit 3.0 я выложит для всех, думаю будет хорошее дополнение к тому что уже есть.