Быстрый и надёжный хостинг на SSD-дисках от 165р в месяц   •   Реклама
3 714 просм
0 комм
Поделиться:

Как вывести все категории (рубрики) товаров WooCommerce в WordPress?

22 янв
Хаки

Я думаю, что многие согласятся со мной, что WooCommerce – это отличное решение для CMS WordPress, с помощью которого можно организовать свой собственный интернет-магазин.

Мы уже затрагивали тему этого дополнения и CMS в общем. Так что сегодня я покажу вам, как просто и без всяких плагинов вывести два вида меню (кликабельный список всех категорий товаров) на вашем сайте.

Одноуровневый вывод всех категорий (рубрик) товаров WooCommerce в любом месте сайта в WordPress

Начнем с самого простого примера – одноуровневого меню со всеми категориями, где есть хотя бы 1 товар.

Вид функции (вставляется в файл functions.php, который находится в папке темы сайта):

function get_categories_product($categories_list = "") {

	$get_categories_product = get_terms("product_cat", [
		"orderby" => "name", // Тип сортировки
		"order" => "ASC", // Направление сортировки
		"hide_empty" => 1, // Скрывать пустые. 1 - да, 0 - нет.
	]);
		
	if(count($get_categories_product) > 0) {
			
		$categories_list = '<ul class="main_categories_list">';
				
		foreach($get_categories_product as $categories_item) {

			$categories_list .= '<li><a href="'.esc_url(get_term_link((int)$categories_item->term_id)).'">'.esc_html($categories_item->name).'</a></li>';
			
		}
			
		$categories_list .= '</ul>';
		
	}

	return $categories_list;
		
}

Использование (вывод):

<?php

	echo get_categories_product();

?>

Этот код вы вставляете в нужное вам место темы сайта. Важные моменты я пометил в функции.

Основные типы сортировок:

  1. id или term_id – по ID.
  2. name – по названию.
  3. slug – по альтернативному названию.
  4. description – по описанию.
  5. meta_value – по значению произвольного поля.
  6. none – не сортировать.

По умолчанию – name.

Допустимые порядки сортировки:

  1. ASC – от меньшего к большему (по порядку – 1, 2, 3 или a, b, c и т.д.);
  2. DESC – от большего к меньшему (в обратном порядке – 3, 2, 1 или c, b, a и т.д.).

По умолчанию – ASC.

Многоуровневый (древовидный) вывод всех категорий (рубрик) товаров WooCommerce в любом месте сайта в WordPress

Поскольку в WooCommerce (как, собственно, и в WordPress) есть возможность вложения категорий, будет не лишним показать вам, как же правильно вывести их все с учетом их структуры (вложенности).

Функция:

function get_categories_product($categories_list = "", $parent_id = 0, $i = 0) {

	$get_categories_product = get_terms("product_cat", [
		"orderby" => "name", // Тип сортировки
		"order" => "ASC", // Направление сортировки
		"hide_empty" => 1, // Скрывать пустые. 1 - да, 0 - нет.
		"hierarchical" => 1,
		"parent" => $parent_id
	]);

	if(count($get_categories_product) > 0) {

		if($parent_id == 0) {

			$categories_list .= '<ul class="main_categories_list">';

			$i = 0;

		} else {

			$i++;

			$categories_list .= '<ul class="sub_categories_list sub_categories_list_'.$i.'">';

		}

		foreach($get_categories_product as $categories_item) {

			$categories_list .= '<li><a href="'.esc_url(get_term_link((int)$categories_item->term_id)).'">'.esc_html($categories_item->name).'</a>';
			$categories_list .= get_categories_product("", $categories_item->term_id, $i);
			$categories_list .= '</li>';

		}

		$categories_list .= '</ul>';

	}

	return $categories_list;

}

Вставляете так же в файл functions.php, и использование (вывод):

<?php

	echo get_categories_product();

?>

Вставляете в нужное место в тему вашего сайта. Допустимые настройки вывода – как и в первом варианте.

Стилизацию меню в этой статье я не рассматриваю, думаю, ее вы можете сделать и сами.

Общий класс меню первого уровня – «main_categories_list», второго и последующего – «sub_categories_list» + «sub_categories_list_N», где N – уровень вложения. Цепляетесь за них и настраиваете вид так, как вам нужно.

До новых встреч!

0
комментариев
Форма комментирования этой статьи скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
Подняться наверх
«Pandoge» - помощник вебмастера