Коварная война россии против Украины. Ориентировочные потери врага
(по состоянию на 17.04.2024)
456050
солдат
347
самолетов
325
вертолетов
7193
танков
13827
ББМ
11624
артиллерия
760
ПВО
1046
РСЗО
15587
машин
26
корабли и катера
Как подключать файлы и шаблоны в WordPress
Опубликовано

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

 

 

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

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *