Вывод количества записей в рубрике в меню

Вот HTML

<ul class="main_nav">
    <li><a href="#">Квартиры<span class="count">14</span></a></li>
    <li><a href="#">Дома<span class="count">11</span></a></li>
    <li><a href="#">Офисы<span class="count">14</span></a></li>
</ul>

Вывожу меню вот так

 <?
        wp_nav_menu( [
            'theme_location'  => '',
            'menu'            => 'Главное Меню', 
            'container'       => false, 
            'container_class' => '',
            'container_id'    => '',
            'menu_class'      => 'main_nav', 
            'menu_id'         => '',
            'echo'            => true,
            'fallback_cb'     => 'wp_page_menu',
            'before'          => '',
            'after'           => '',
            'link_before'     => '',
            'link_after'      => '',
            'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
            'depth'           => 0,
            'walker'          => '',
        ] );
        ?>

Получается вот так

<ul id="menu-glavnoe-menyu-1" class="main_nav"><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-19"><a href="http://design/category/kvartiry/">квартиры</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18"><a href="http://design/category/doma/">дома</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20"><a href="http://design/category/ofisy/">офисы</a></li>
</ul>

Как можно в навигационном меню вывести количество записей в рубрике?

<span class="count">14</span> 

Ответы (1 шт):

Автор решения: KAGG Design

При выводе меню предусмотрено несколько фильтров. Удобнее всего для данной задачи использовать wp_nav_menu_objects:

/**
 * Filter menu objects.
 *
 * @param array    $sorted_menu_items The menu items, sorted by each menu item's menu order.
 * @param stdClass $args              An object containing wp_nav_menu() arguments.
 *
 * @return array
 */
function wp_nav_menu_objects_filter( $sorted_menu_items, $args ) {
    foreach ( $sorted_menu_items as $item ) {
        if ( 'category' === $item->object ) {
            $item->title .= ' <span class="count">(' . get_category( $item->object_id )->count . ')</span>';
        }
    }

    return $sorted_menu_items;
}

add_filter( 'wp_nav_menu_objects', 'wp_nav_menu_objects_filter', 10, 2 );
→ Ссылка