Информер курса валют ЦБ РФ   •   Магазин расширений
436 просм
0 комм
Поделиться:

Как добавить счетчик записей рубрики в меню в 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» – название вашего меню.

Сохраняете изменения и отправляете файл обратно на сайт.

3. Установка закончена.

Во всех случаях ваш счетчик будет находиться внутри ссылки на категорию. Если вам необходимо сделать разделение и вывести счетчик за ссылку, то используйте следующий код:

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);

Таким образом, вы можете украсить вашу навигацию на сайте полезным дополнением.

0
комментарий
Оставить комментарий:
Нажимая кнопку «Отправить» вы даете согласие на обработку своих персональных данных.
Ваше Имя
Ваш E-mail
Текст комментария