Как заставить get_template_part всегда проверять дочернюю тему в первую очередь?

8

Как заставить WP всегда сначала проверять папку дочерней темы при запуске get_template_part?

Пример: ребенок тема нагрузки get_template_part('content', 'inventory')в single.php. Поскольку все дочерние темы (а их много) имеют общую базу шаблонов инвентаризации, файл content-inventory.phpнаходится в родительской теме. Все идет нормально.

Я хотел бы добавить небольшой раздел к указанному шаблону инвентаря, который будет уникальным для каждой дочерней темы. Добавление get_template_part('content', 'inventory-special')в content-inventory.phpне проверит каталог дочерней темы первым.

м-Torin
источник
3
Двое из вас, кто отрицательно проголосовал за мой ответ и не прокомментировал, почему, спасибо ни за что. Как кто-то предполагает улучшить себя с помощью негативной критики?
м-торин

Ответы:

5

По умолчанию. В get_template_part()функции использования , locate_template()которая каскадами через файлы шаблонов в в порядке специфичности и stylesheetpath / templatepath.

Итак, если ваша детская тема включает в себя content-inventory.php, то get_template_part()включит ее; если нет, то это будет искать content-inventory.phpв родительской теме. Если он не найдет его, он будет искать content.phpсначала в дочернем, а затем в родительском.

РЕДАКТИРОВАТЬ:

Понимание того, что вы имеете в виду; уточни пожалуйста если я не правильно понял ...

Вы хотите включить новый файл детали шаблона в файл шаблона Parent-Theme с именем content-inventory.php, верно?

Единственный способ, AFAIK, который вы можете сделать, это скопировать content-inventory.phpв свою тему ребенка , а затем добавить новый get_template_part()вызов, где это необходимо.

Если файл с именем content-inventory.phpвключен в обоих Родителя и ребенка тему, то WordPress будет всегда использовать Child Theme версию, если он включен , используя get_template_part().

Чип Беннетт
источник
@Kaiser, @Chip Bennett: WP, очевидно, проверит родительскую тему content-inventory.php. Кодекс и простой опыт ясно дают понять. Однако, если искомый файл (уровень 2) находится в папке родительской темы, WP не перепроверяет дочернюю тему на предмет содержимого в искомом get_template_partфайле (включает в себя третий уровень). Это сработало для вас по-другому?
м-торин
Я не понимаю ваш вопрос / проблему. Для любого данного имени файла шаблона WordPress всегда сначала проверяет дочернюю тему . Можете ли вы объяснить, что вы подразумеваете под файлами второго и третьего уровня?
Чип Беннетт