it-swarm.com.ru

Правильный способ включить/требовать PHP файлы в WordPress

Я новый разработчик WordPress, и недавно у меня возникли проблемы (на нескольких сайтах) с include_once и require_once для PHP файлов. Если я включаю (get_theme_directory_uri() . 'subdir/file'), указанный файл включается (или требуется, что приводит к фатальным ошибкам), но если какие-либо функции WordPress вызываются в "file", я получаю что-то похожее на:

' Вызов неопределенной функции add_action() в/full/path/to/file'.

Очевидное решение, которое я нашел, заключается в следующем:

include(dirname(__FILE__) . "/subdir/filename");

Это правильно, или я пропустил "путь WordPress", чтобы куда-нибудь включать файлы?

2
caffeine

Если вы проверите https://codex.wordpress.org/Function_Reference/get_template_directory_uri

Вы увидите, что get_template_directory_uri() возвращает URI, а не путь к серверу.

Вы должны использовать вместо этого функцию get_template_directory():

include get_template_directory() . 'subdir/filename.php';

Для плагина вы можете использовать функцию plugin_dir_path():

include plugin_dir_path( __FILE__ ) . 'subdir/filename.php';
8
thomascharbit