Вывод количества записей в рубрике в меню
Вот 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 );