Узнать разрешение вашего экрана и IP адрес   •   Online-инструменты
764 просм
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
комментариев
Гостям запрещено учавствовать в обсуждениях сайта. Авторизуйтесь, чтобы иметь возможность оставить свое мнение о материале или задать вопрос.