Головна → Новини → Використання функції get_template_part () в WordPress
Якщо ви займаєтеся розробкою тем для 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 (звідки і назва), наприклад навігаційне меню, блок зі схожими записами, пагінація і так далі.
Розглянемо кілька простих прикладів:
Даний код виконає пошук файлу navigation.php в активній темі WordPress, і підключить його. На відміну від include () або require (). функція get_template_part () не викличе помилок або попереджень, якщо файл з такою назвою не знайдено.
У функції є так само другий необов'язковий аргумент:
Даний код виконає і підключить файл navigation-header.php в активній темі. Якщо файл з такою назвою не існує, то get_template_part () спробує підключити файл navigation.php.
дочірні теми
У дочірніх темах робота з функцією get_template_part () стає трохи складніше. наприклад:
Якщо в момент виклику даної функції на сайті активна дочірня тема, то пошук файлу breadcrumbs.php відбудеться спершу в дочірньої темі. Якщо файл з такою назвою в дочірньої темі відсутній, то функція спробує підключити файл breadcrumbs.php в батьківській темі.
При такому виклику з дочірньою теми, пошук і підключення файлів відбудеться в наступному порядку:
- breadcrumbs-header.php в дочірньої темі
- breadcrumbs-header.php в батьківській темі
- breadcrumbs.php в дочірньої темі
- breadcrumbs.php в батьківській темі
Таким чином, якщо ви розробляєте тему для WordPress, ви можете дати можливість користувачам легко змінити або запобігти виведенню хлібних крихт в певних ділянках теми. Для цього користувачам потрібно буде лише створити файл з певним ім'ям в дочірньої темі.
формати записів
Починаючи зі стандартною теми Twenty Eleven, при виведенні вмісту записів в шаблонах використовується функція get_template_part () разом з функцією 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:
Даний код виконає пошук файлів в наступному порядку:
- foo.php в дочірньої темі
- foo.php в батьківській темі
- bar.php в дочірньої темі
- bar.php в батьківській темі
- baz.php в дочірньої темі
- baz.php в батьківській темі
Врахуйте, що на відміну від функції get_template_part (). функція locate_template () вимагає повна назва файлів в масиві, включаючи розширення .php. Саме функція locate_template () дозволяє реалізувати ієрархію шаблонів в темах для WordPress.