Как подключать файлы и шаблоны в 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 );

 

 

Вот и все на сегодня. Спасибо за внимание!

 

Share

Последние посты

Антуан де Сент-Экзюпери

Никогда не теряй терпения — это последний ключ, отпирающий двери Антуан де Сент-Экзюпери   Читать далее

28/03/2024

Сомерсет Моэм

Когда вы станете старше, вы поймете, что в мире можно хоть как-нибудь жить только при… Читать далее

27/03/2024

Михаил Грушевский

Все учатся своему родному языку, а наша беда такова, что нужно учить его больше, чем… Читать далее

26/03/2024

ТОП-5 надежных покерных обменников

Профессиональный покер – это многочисленные турниры и крупные суммы, что требует правильной настройки финансовых инструментов.… Читать далее

25/03/2024

Гай Юлий Цезарь

Все вокруг стремятся истребить врагов, но не объединиться с друзьями Гай Юлий Цезарь   Читать далее

24/03/2024

Как выбрать оптимальный смартфон для ребенка?

Сегодняшние дети сталкиваются с технологиями с самого раннего возраста, и смартфон уже давно перестал быть… Читать далее

22/03/2024