Как сделать так, чтобы get_template_part всегда проверял сначала дочернюю тему?
Как заставить WordPress всегда проверять сначала папку дочерней темы при выполнении get_template_part?
Пример: дочерняя тема загружает get_template_part('content', 'inventory') в single.php. Поскольку все дочерние темы (а их много) используют один и тот же базовый шаблон инвентаря, файл content-inventory.php находится в родительской теме. Пока всё хорошо.
Я хотел бы добавить небольшую секцию в указанный шаблон инвентаря, которая будет уникальной для каждой дочерней темы. Добавление get_template_part('content', 'inventory-special') в content-inventory.php не приведёт к первоочередной проверке директории дочерней темы.
По умолчанию это работает именно так. Функция get_template_part() использует locate_template(), которая последовательно проверяет файлы шаблонов по степени их специфичности и путям стилей/шаблонов.
Итак, если ваша Дочерняя Тема содержит файл content-inventory.php, то get_template_part() подключит именно его; если такого файла нет, он будет искать content-inventory.php в Родительской Теме. Если и там его не окажется, функция проверит наличие content.php сначала в Дочерней, а затем в Родительской Теме.
РЕДАКТИРОВАТЬ:
Попробую понять, что вы имеете в виду; пожалуйста, уточните, если я ошибаюсь...
Вы хотите добавить новый файл-часть шаблона внутри файла Родительской Темы под названием content-inventory.php, верно?
Единственный способ, насколько мне известно, сделать это — скопировать content-inventory.php в вашу Дочернюю Тему, а затем добавить новый вызов get_template_part() в нужном месте.
Если файл с именем content-inventory.php присутствует и в Родительской, и в Дочерней Теме, WordPress всегда будет использовать версию из Дочерней Темы, если он подключён через get_template_part().
@Kaiser, @Chip Bennett: WP, очевидно, проверит родительскую тему на наличие файла content-inventory.php. Кодекс и простой опыт делают это очевидным. Однако, если искомый файл (уровень 2) находится в папке родительской темы, WP не перепроверяет дочернюю тему на наличие get_template_part, содержащегося в искомом файле (третий уровень вложенности). Работало ли это по-другому у вас?
MTT
get_template_part() делает это по умолчанию.