Применить шаблон архива пользовательской таксономии к дочерним элементам.

Вопрос или проблема

Есть небольшая проблема, которую я не могу решить сам:

Я создал пользовательский тип записи (tours) с пользовательской таксономией (tour categories). Я создал файл taxonomy-tour-categories.php для отображения archive страницы для каждой категории туров. Все работает отлично.

У меня есть tour category (School tours), которая требует другого макета, поэтому я добавил второй шаблон taxonomy-tour-categories-shool-tours.php с моим желаемым макетом. Опять же, все работает отлично.

Проблема в том, что категория туров 'school tours' имеет свои подкатегории (такие как 'workshops', 'science labs' и так далее), которые я хотел бы отображать с помощью шаблона taxonomy.tour-categories-school-tours.php, но их отображает шаблон taxonomy.tours-categories.php. Почему так?

Я думал, что WordPress – когда файл шаблона для конкретного термина отсутствует – вернется к шаблону уровня выше (в данном случае taxonomy.tours-categories-school-tours.php). Что я упускаю?

Спасибо за вашу помощь!

Как видно на этом изображении, иерархия шаблонов ограничивается taxonomy-$taxonomy-$term.php.

Я не знаю, почему подтермин возвращается к taxonomy-$taxonomy.php, но, я полагаю, он ищет taxonomy-$taxonomy-$term.php, где $term будет workshops, science labs и так далее. И поскольку таких файлов не существует (я так предполагаю), он возвращается к taxonomy-$taxonomy.php.

Вы можете воспользоваться обходным путем в вашем файле taxonomy-$taxonomy.php, который загружает запрашиваемый файл taxonomy-$taxonomy-$term.php, когда $term имеет родительский $term.

Ответ или решение

Ваша задача по созданию индивидуального шаблона архивов для подкатегорий в WordPress достаточно интересная и распространенная. Давайте разберемся, как интегрировать шаблон taxonomy-tour-categories-school-tours.php для подкатегорий вашего кастомного налогового слоя.

Проблема

Вы уже создали кастомный тип записи tours и соответствующую таксономию tour categories. Это хороший старт, и у вас есть базовая возможность отображения всех категорий. Однако, когда дело касается подкатегорий, работа идет не так, как ожидалось. Подкатегории, такие как 'workshops' и 'science labs', используют основной шаблон taxonomy-tour-categories.php, вместо того чтобы подхватывать индивидуальный шаблон для родительской категории.

Причина

Как вы правильно заметили, WordPress ищет файл шаблона по иерархии шаблонов. Для категорий WordPress сначала ищет файл taxonomy-$taxonomy-$term.php. Если такой файл не найден, он переходит к taxonomy-$taxonomy.php. В вашем случае, для подкатегорий шаблон WordPressрав илтиметодие общ, и если подкатегории не имеют своего собственного шаблона — они отображаются в шаблоне базовой категории.

Решение

Вы можете использовать обходное решение в файле taxonomy-tour-categories.php, чтобы проверить, принадлежит ли текущая категория родительской категории 'school tours' и, если да, загрузить необходимый для вашей родительской категории шаблон. Вот как это можно сделать:

  1. Обновите файл taxonomy-tour-categories.php:
<?php
// Получаем текущую категорию
$current_term = get_queried_object();

// Проверяем, есть ли у текущей категории родительская категория
if ($current_term->parent) {
    // Получаем родительскую категорию
    $parent_term = get_term($current_term->parent, 'tour_categories');

    // Проверяем, является ли родительская категория 'school tours'
    if ($parent_term->slug === 'school-tours') {
        // Подключаем шаблон для 'school tours'
        include(locate_template('taxonomy-tour-categories-school-tours.php'));
        exit; // не забудьте завершить выполнение скрипта
    }
}

// Если родительская категория не 'school tours', продолжаем как обычно
?>
<!-- Ваш стандартный код для отображения других таксономий -->

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

Заключение

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

Эта методология не только улучшает визуальное восприятие для пользователей, но и способствует повышению SEO-оптимизации, так как предоставляет пользователям более релевантный контент в зависимости от их интересов.

Оцените материал
Добавить комментарий

Капча загружается...