Як підключати файли і шаблони в WordPress
Багато розробників люблять мову програмування PHP за її розширюваність та гнучкість. Але в цій мові є деякі речі, які часто збивають з пантелику. Найяскравішим прикладом тут виступає правильний спосіб підключення зовнішніх файлів. Для цього в PHP є аж чотири способи підключення файлів, а WordPress навіть пропонує свій власний варіант.
У сьогоднішній статті ми розглянемо чотири способи, які є в PHP для підключення файлів, а також розглянемо способи підключення файлів і шаблонів, які є в WordPress.
Способи підключення файлів в PHP
Підключення файлів в PHP можна охарактеризувати як дію по додаванню іншого файлу у вміст поточного файлу. Це можна уявити як імпорт файлу; в результаті файли об’єднуються, а потім інтерпретуються як один файл.
include()
Цей вираз включає і виконує зазначений файл. Якщо файл не знайдений, з’явиться попередження PHP.
Простіше кажучи, це означає, що PHP буде шукати файл, який ви намагаєтеся включити. Якщо він буде знайдений, його вміст додасться в скрипт в тому місці, де ви оголосили цю конструкцію.
ВАЖЛИВО: якщо ви пишете функції, які залежать від функцій в іншому файлі, тоді переконайтеся, що цей файл підключається першим. Якщо вам потрібно додати набір функцій або зовнішній файл в середині існуючої функції, тоді ви можете включити його в потрібному місці.
Зверніть увагу, що якщо підключаємий файл відсутній, PHP видасть попередження про помилку. Залежно від конфігурації серверу помилка буде або відображатися в браузері, або буде записана в файл логу (журнал помилок), або обидва варіанти. Попередження в даному випадку не вважається фатальною помилкою, і, як правило, не зупиняє виконання скрипта, але врахуйте, що частина ваших функцій може працювати некоректно.
Коли файл завантажується за допомогою include()
, він буде мати доступ до всіх змінних, які були визначені в поточному скрипті.
include_once()
Ця конструкція поводиться так само, як і include()
, але якщо інший файл вже був підключений, він більше не буде підключатися. Тобто, інший скрипт підключається в даному випадку тільки один раз.
Перевага даного способу підключення полягає в тому, що крім гарантії того, що скрипт буде включений тільки в одному місці, він також гарантує, що змінні і функції не обов’язково будуть перевизначені. Якщо ви вирішите визначити новий набір змінних або функцій в файлі, включити його в інший скрипт і не використовувати include_once()
, тоді ви ризикуєте перевизначити функції і змінні, що може викликати серйозні проблеми з виконанням коду.
Залежне підключення файлів в PHP
Залежне підключення файлів аналогічно включенню файлів, але воно має ряд власних наслідків, пов’язаних з помилками і безпекою.
В даному випадку мається на увазі, що залежне підключення наполягає на тому, що скрипту необхідний певний файл для виконання.
require()
Ця конструкція схожа з include()
, але вона видає фатальну помилку PHP, якщо файл не буде знайдений. Вона буде виконувати ту саму дію, що і include()
, тобто, імпортувати зовнішній скрипт в контекст поточного файлу, але якщо функція не зможе знайти інший файл, вона видасть помилку і повністю зупинить виконання скрипта. За допомогою include()
ви отримаєте попередження, і скрипт зможе продовжити роботу, а тут ваш скрипт не буде далі продовжувати своє виконання.
require_once()
Ця конструкція виконує те ж саме, що і require()
, але вона не буде підключати файл вдруге, якщо він вже був підключений.
Рекомендації по функціям підключення в PHP:
- Конструкція
require_once()
краще підходить для великих сайтів, так як на більш низькому рівні виконує додаткову роботу, яка впливає на безпеку і продуктивність. - Конструкція
include_once()
швидше і вважається прийнятною для невеликих сайтів - Не існує жорстких правил, коли використовувати розглянуті конструкції, але ви повинні виходити з власних вимог і умов.
Підключення файлів в WordPress
Якщо вам потрібно підключати інші файли в WordPress, є інший, більш ефективний спосіб, ніж використання include()
і require()
.
Припустимо, у вас є певний шаблон, який вам потрібно підключити в інші шаблони активної теми. Щоб скористатись іншим шаблоном, ви можете використовувати щось на зразок цього:
include_once( 'shablon.php' );
Але це не є кращою практикою в WordPress.
Ось функція, яку краще використовувати в WordPress: get_template_part()
Ця функція є частиною API двигуна і використовується спеціально для повторного використання розділів, шаблонів або коду (крім блоків для хедера, футера і бічної панелі) у вашій темі. Для цього вам потрібно просто додати в потрібному шаблоні код виду:
get_template_part('shablon');
Функція приймає два аргументи:
- Перший аргумент – це слаг (slug) для шаблону. У наведеному вище прикладі слаг не використовується
- Другий аргумент – це ім’я шаблону. У наведеному вище прикладі це буде
shablon
. В результаті підключиться файлshablon.php
, який знаходиться на одному рівні із поточним файлом (в якому відбувається підключення)
Дотримуючись прикладу вище, ви можете підключати інші шаблони в потрібний шаблон, наприклад в footer.php
, index.php
, single.php
, archives.php
і т.д.
У WordPress є функція підключення, яка є іншим представленням конструкції require_once()
– це функція load_template()
.
Її синтаксис виглядає наступним чином:
load_template( $_template_file, $require_once );
$_template_file
: шлях до файлу, який потрібно підключити.$require_once
:true
– буде підключати файл за допомогоюrequire_once
,false
– за допомогоюrequire
.
Приклад:
load_template( get_template_directory() . '/shablon.php', true );
Ось і все на сьогодні. Дякуємо за увагу!