get_template_part() не работает при вызове из подпапки
Допустим, у вас есть такая структура каталогов:
theme
- subfolder
- template.php
content-job-listing.php
Если я пытаюсь вызвать get_template_part таким образом get_template_part('content', 'job-listing')
из файла template.php (обратите внимание, это просто общее название, а не фактическое имя, которое я использую), он возвращает NULL.
Аналогично, если я использую get_template_part('../content', 'job-listing')
, это также не может загрузить шаблон. Однако первый вариант работает нормально, если оба файла находятся в одном каталоге.
get_template_part() не работает, если вы вызываете его, находясь в подпапке темы

get_template_part()
будет работать одинаково независимо от того, где или насколько глубоко вы находитесь в своей теме. Она всегда подключает файлы относительно корневой директории темы (или дочерней темы).
Таким образом, если вы вызываете следующий код из любого места:
get_template_part( 'content', 'job-listing' );
... функция попытается загрузить (в указанном порядке):
child-theme/content-job-listing.php
parent-theme/content-job-listing.php
child-theme/content.php
parent-theme/content.php
Для загрузки частей, находящихся в поддиректории вашей темы, просто укажите путь в первом аргументе:
get_template_part( 'path/to/file', 'optional-slug' );

Верно. Это отлично, но основная проблема — определить, какой из этих файлов будет использоваться в том или ином случае. Например, индекс будет загружать content.php
, даже если вы думаете, что должна использоваться версия с кратким описанием... Так что в некоторых ситуациях это может сбивать с толку.
