Добавить в произвольное меню категорий, количество в них постов

Решено

У меня есть обычный вывод меню с рубриками.

Добавить в произвольное меню категорий, количество в них постов

но хотелось бы к ним добавить количество постов в них  а именно в самом меню к каждому <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

    http://stackoverflow.com/questions/35203669/wordpress-walker-how-to-add-number-of-post-to-category-menu-items

    Если не получится, или получится напишите пожалуйста. Если не выйдет, то напишу.

    в 05.03.2017.
    Добавить Комментарий

    Версия с Bootstrap меню работает но выдает много лишних ошибок из-за не совместимости с моим для UiKit.

    Немного не могу допилить под себя. Если не затруднит, возможно его доработать под UiKit — http://monopixel.ru/walker-uikit.zip

    Так же он адаптирован под uikit 2, если можно переделать выпадающее меню поп Uikit 3.0 я выложит для всех, думаю будет хорошее дополнение к тому что уже есть.

    Добавить Комментарий

    Ваш ответ

    Размещая свой ответ, вы соглашаетесь с правилами сайта.