Как WordPress делает свои функции доступными для файлов темы без инструкции include или require

#php #wordpress

#php #wordpress

Вопрос:

Как мы все знаем, WordPress предоставляет такие функции API, как

 get_header();
get_sidebar();
get_footer();
 

и другие, которые вы можете определить в своем собственном functions.php файл доступен в любом месте ваших файлов темы.

Как вы создаете подобную функциональность в своих собственных внешних приложениях / скриптах PHP без необходимости писать инструкцию include или require в верхней части каждого файла PHP для доступа к вашим собственным функциям?

WordPress создает свои функции API и те, которые определены в ваших темах functions.php файл постоянно доступен для вас, так что вы можете с удовольствием создавать темы, не добавляя каждый раз несколько файлов.

Я понимаю, что волшебство начинается с WordPress ‘ index.php который затем включает в себя wp-blog-header.php а потом wp-load.php и на этом этапе делается множество инструкций require / include, которые настраивают среду и делают такие функции доступными для нас…

Но у меня возникли проблемы с пониманием того, как WordPress предоставляет вам файлы темы, в то же время все время отбрасывая вас назад через его первоначальный цикл wp-blog-header.php и так далее, чтобы убедиться, что эти функции доступны для вас…

Я надеюсь, что это имеет смысл!

С уважением, WP

Ответ №1:

Файлы темы включаются в процесс, который вы описываете (index.php и т.д.), после файлов, содержащих определения этих функций.

Комментарии:

1. можете ли вы подробно объяснить. что вы имеете в виду

2. Открыть index.php в текстовом редакторе. Каждый раз, когда вы видите строку с include include_once , require или require_once , найдите файл, на который ссылается ссылка, откройте его и вставьте вместо строки. Затем повторите, начиная с кода, который вы только что вставили, и продолжайте, пока не дойдете до конца файла. Это будет очень большой файл, но это то, что будет выполнять PHP. Если вы это сделаете, вы увидите, что все функции есть: функции темы, get_header() и т.д.