Рано или поздно, внося изменения или создавая свою новую тему, Вы столкнетесь с тем, что нужно будет подключить файл внутри темы. Например, у Вас есть файл index.php, отвечающий за вывод главной страницы. В какой-то момент, вы решили добавить туда какую-то функцию или условие. Код с этой функцией очень большой и Вы решили его добавить в отдельный файл. Или Вы решили не писать код цикла в каждом файле где он встречается, а он бывает в большей половине файлов темы Вордпресса. index.php, search.php, category.php, archive.php и тд. Чтобы каждый раз не повторять один и тот же код, вы можете его добавить в отдельный файл, а уже его и подключить внутри тех, где должен быть цикл.
Многие для подключения файлов используют PHP функцию include(). Не буду лукавить, я и сам по началу тоже ее использовал. Но набирая опыт и все больше изучая материал я открыл очень полезную функцию, которой и поделюсь с Вами.
get_template_part() - функция WordPress, которая применяется для подключения файлов или частей темы в самой теме. Давайте рассмотрим пример, как можно ее применить.
Например, как я описывал Выше вы вывели цикл в отдельный файл и назвали его content.php. Чтобы его подключить в нужном месте файла, где это нужно сделать добавляется такой вызов функции:
get_template_part( 'content' );
Так Вы подключаете созданный content.php, лежащий в той же папке что и файл где подключаете. Как видите указывается только название без расширения.
Теперь давайте рассмотрим случай, когда в названии присутствует дефис. Например файл называется content-loop.php. Так же в одних скобках указать нельзя, нужно немного изменить.
get_template_part( 'content','loop' );
Вам нужно просто через запятую, в кавычках указать второе слово после дефиса. Сложного, по сути, тоже ничего нет.
Бывает и так, что нужно подключить файл, который лежит в отдельной папке внутри темы. Например, я часто использую вложенные папки для файлов, которые подключаю, чтобы они не мешались с основными файлами темы. Например, что файл content.php лежит в папке inc, которая расположена в папке с темой. Тогда, подключение выглядит следующим образом:
get_template_part( 'inc/content' );
Ну или для content-loop.php:
get_template_part( 'inc/content','loop' );
Вот в принципе и все. Хочу лишь добавить очевидную вещь, вдруг кто не знает. Данные примеры показаны для вставки в ту часть кода, что выводится в PHP. Если же в Вашей теме преобладает HTML, то функцию нужно заключать в PHP теги.
<?php Сюда функцию ?>
Данная функция намного удобнее include(). В ней не нужно указывать путь к папке с темой. Я рекомендую использовать get_template_part() при создании тем и надеюсь, что материал данной статьи Вам поможет.
На этом все, спасибо за внимание. 🙂