smsc banner 468x60smsc banner 728x90smsc banner 930x180flexbe banner 468x60flexbe banner 728x90flexbe banner 930x180skillbox banner 468x60skillbox banner 728x90skillbox banner 930x180

Как сделать различные шаблоны для категорий и подкатегорий в WordPress

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

  • category-{slug}.php
  • category-{id}.php
  • category.php

Но, если вам нужно применять разные php-шаблоны для категорий и подкатегорий, вы можете использовать хук category_template и проверять, есть ли у текущей категории родительский элемент, и в этом случае загружать, например, subcategory.php:

function wpz_subcategory_template( $template ) {
	if ( is_category() && 0 < get_queried_object()->category_parent ) {
		$template = locate_template( 'subcategory.php' );
	}
	return $template;
}
add_filter( 'category_template', 'wpz_subcategory_template' );

Если же у вас задача сделать разные шаблоны для каждого уровня вложенности, например такого:

  • continent
    • country
      • city

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

function wpz_subcategory_template( $template ) {
	$cat        = get_queried_object();

	$children   = get_terms( $cat->taxonomy, array(
		'parent'     => $cat->term_id,
		'hide_empty' => false,
	) );

	if ( ! $children ) {
		$template = locate_template( 'category-country-city.php' );
	} elseif ( 0 < $cat->category_parent ) {
		$template = locate_template( 'category-country.php' );
	}

	return $template;
}
add_filter( 'category_template', 'wpz_subcategory_template' );
flexbe banner 480x320flexbe banner 728x90flexbe banner 120x600kwork banner 480x320kwork banner 728x90kwork banner 120x600etxt banner 480x320etxt banner 728x90etxt banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как сделать webp без плагинов в WordPress

WebP — это современный формат сжатия изображений без потери качества, который напрямую влияет на скорость загрузки сайта. Конвертирование изображений из jpg и png в формат webp может дать существенный прирост в баллах по google page speed. Формат webp поддерживается большинством современных браузеров. Вы без труда можете найти плагины, которые помогут вам автоматически конвертировать изображения, добавленные…
Подробнее

Как вывести все изображения из произвольной папки без плагинов в WordPress

При разработке своих сайтов вам может понадобиться вывести галереи изображений из произвольных папок без их загрузки в библиотеку. Давайте рассмотрим пример, как это сделать с помощью шорткода: Использование: [folder-gallery path=’/data/images/’] Как видите, функция принимает путь до искомой папки (обязательно с открывающим и закрывающим слешем), в функции устанавливаются разрешенные типы изображений и формируется вывод с классами…
Подробнее

Как изменить выравнивание и размер изображения при вставке в редактор WordPress

При добавлении изображения в пост, по умолчанию WordPress вставляет его в размере medium и без выравнивания. Чтобы при загрузке картинки ей прописывалось выравнивание по центру и полный размер, вы можете использовать такой код:
Подробнее