Главная Новости

Использование функции get_template_part() в WordPress

Опубликовано: 06.09.2018

видео Использование функции get_template_part() в WordPress

آموزش ارسال پارامترها با get_template_part

Если вы занимаетесь разработкой тем для WordPress, то вы наверняка встречались с функцией get_template_part(), которая позволяет легко разбить шаблоны темы на несколько файлов. В данной статье мы рассмотрим возможности и некоторые особенности данной функции.



Функция get_template_part() впервые появилась в WordPress версии 3.0. Она предназначена для поиска и подключения разных частей шаблона и похожа на внутренние функции PHP include() или require(), но с некоторыми отличиями:

get_template_part() знает где находится директория с вашими темами Функция не вызовет ошибок или предупреждений PHP в случае, если запрашиваемый файл не найден Функция get_template_part() может подключить альтернативный файл в случае если, первоначально запрашиваемый файл не найден Функция прекрасно работает с дочерними темами в WordPress

Основы get_template_part()

Чаще всего функция get_template_part() используется для внедрения какой-либо части шаблона в теме WordPress (откуда и название), например навигационное меню, блок со схожими записями, пагинация и так далее.


Responsive Wordpress Theme Tutorial - Part 18 - GET_TEMPLATE_PART

Рассмотрим несколько простых примеров:

get_template_part( 'navigation' );

Данный код выполнит поиск файла navigation.php в активной теме WordPress, и подключит его. В отличие от include() или require(), функция get_template_part() не вызовет ошибок или предупреждений, если файл с таким названием не найден.


get_template_part , add_theme_support and get_post_format in Wordpress

У функции есть так же второй необязательный аргумент:

get_template_part( 'navigation', 'header' );

Данный код выполнит и подключит файл navigation-header.php в активной теме. Если файл с таким названием не существует, то get_template_part() попытается подключить файл navigation.php.

Дочерние темы

В дочерних темах работа с функцией get_template_part() становится немного сложнее. Например:

get_template_part( 'breadcrumbs' );

Если в момент вызова данной функции на сайте активна дочерняя тема, то поиск файла breadcrumbs.php произойдет сперва в дочерней теме. Если файл с таким названием в дочерней теме отсутствует, то функция попытается подключить файл breadcrumbs.php в родительской теме.

get_template_part( 'breadcrumbs', 'header' );

При таком вызове из дочерней темы, поиск и подключение файлов произойдет в следующем порядке:

breadcrumbs-header.php в дочерней теме breadcrumbs-header.php в родительской теме breadcrumbs.php в дочерней теме breadcrumbs.php в родительской теме

Таким образом, если вы разрабатываете тему для WordPress, вы можете дать возможность пользователям легко изменить или предотвратить вывод хлебных крошек в определенных участках темы. Для этого пользователям нужно будет лишь создать файл с определенным именем в дочерней теме.

Форматы записей

Начиная со стандартной темы Twenty Eleven, при выводе содержимого записей в шаблонах используется функция get_template_part() вместе с функцией get_post_format(), которая возвращает формат текущей записи в виде строки:

get_template_part( 'content', get_post_format() );

Данный подход позволяет разделить вывод разных форматов записей на разные файлы, например content-gallery.php для галерей, content-quote.php для цитат, content-image.php для изображений и т.д. Если тот или иной файл не существует, WordPress будет искать файл с названием content.php.

Структура файлов в теме Twenty Twelve

Пользователям такой темы легко изменить вывод того или иного формата создав новый файл с определенным названием в дочерней теме WordPress.

Функция locate_template()

Функция get_template_part(), как и многие другие функции для работы с файлами шаблонов WordPress (в том числе get_header(), get_sidebar(), get_footer() и другие) использует функцию ядра locate_template(). Именно эта функция позволяет выбрать и загрузить первый попавшийся файл из заданного массива в дочерней или родительской теме WordPress:

locate_template( array( 'foo.php', 'bar.php', 'baz.php', ) );

Данный код выполнит поиск файлов в следующем порядке:

foo.php в дочерней теме foo.php в родительской теме bar.php в дочерней теме bar.php в родительской теме baz.php в дочерней теме baz.php в родительской теме

Учтите, что в отличие от функции get_template_part(), функция locate_template() требует полное название файлов в массиве, включая расширение .php. Именно функция locate_template() позволяет реализовать иерархию шаблонов в темах для WordPress.

Если у вас возникли вопросы по работе с функцией get_template_part(), оставьте комментарий и мы обязательно вам ответим. Если вам интересно узнать подробности реализации упомянутых функций, советуем взглянуть на файлы template.php и general-template.php в ядре WordPress.

rss