Как добавить счетчик записей рубрики в меню в WordPress?
Сегодня хочу поделиться с вами очень интересным хаком, который я использовал на одном из сайтов, с которыми мне довелось поработать.
Идея этого хака заключается в том, чтобы в меню, вызванное через функцию «wp_nav_menu» у рубрик, вывести количество записей, которое находится в той или иной рубрике.
Чтобы реализовать такое на своем сайте в CMS WordPress, сделайте следующее.
1. Подключитесь к вашему сайту по FTP.
2. В папке вашей темы откройте файл functions.php и в самый низ вставьте:
Если вы хотите применить этот хак на всех меню, которые существуют на вашем сайте:
function menu_item_count($output, $item, $depth, $args) {
if($item->type == "taxonomy") {
$object = get_term($item->object_id, $item->object);
$output_split = str_split($output, strpos($output, "</a>"));
$output_new .= $output_split[0]."(".$object->count.")".$output_split[1];
$output = $output_new;
}
return $output;
}
add_action("walker_nav_menu_start_el", "menu_item_count", 10, 4);
Если хотите добавить функционал только в определенное меню:
function menu_item_count($output, $item, $depth, $args) {
if($item->type == "taxonomy") {
$object = get_term($item->object_id, $item->object);
if($args->menu == "name") {
$output_split = str_split($output, strpos($output, "</a>"));
$output_new .= $output_split[0]."(".$object->count.")".$output_split[1];
$output = $output_new;
}
}
return $output;
}
add_action("walker_nav_menu_start_el", "menu_item_count", 10, 4);
Где «name» – название вашего меню.
Сохраняете изменения и отправляете файл обратно на сайт. Установка закончена.
Во всех случаях ваш счетчик будет находиться внутри ссылки на категорию. Если вам необходимо сделать разделение и вывести счетчик за ссылку, то используйте следующий код:
function menu_item_count($output, $item, $depth, $args) {
if($item->type == "taxonomy") {
$object = get_term($item->object_id, $item->object);
$output .= "(".$object->count.")";
}
return $output;
}
add_action("walker_nav_menu_start_el", "menu_item_count", 10, 4);
Таким образом, вы можете украсить вашу навигацию на сайте полезным дополнением.