Функция по сути подключает любой PHP-файл с доступной в нём средой WordPress, а также глобальными переменными $posts
, $post
, $wp_did_header
, $wp_query
, $wp_rewrite
, $wpdb
, $wp_version
, $wp
, $id
, $comment
, $user_ID
.
Кроме того, массив $wp_query->query_vars
, если существует, будет разобран на отдельные переменные php-функцией extract()
. То есть $wp_query->query_vars[ 'param1' ]
превратится в $param1
. Подробнее во втором примере. И ещё кое-что, параметр поиска $wp_query->query_vars[ 's' ]
также будет очищен функцией esc_attr().
Если вам интересно лучше разбираться, как устроены файлы тем в WordPress и как работает их иерархия, то рекомендую посмотреть этот видеоурок.
Функция сама по себе ничего не возвращает.
load_template( $_template_file, $require_once = true, $args = array() )
true
– в этом случае файл будет подключаться PHP-функцией require_once()
,false
– будет подключаться функцией require()
.В этом примере предположим, что мы используем функцию load_template()
в каком-либо файле, находщемся в папке с темой. И подключим другой файл, который находится в этой же папке.
load_template( dirname( __FILE__ ) . '/true-template.php' );
Попробуем сделать то же самое, но при помощи магической константы __DIR__
.
load_template( __DIR__ . '/true-template.php' );
Пробуем сделать то же самое, но при помощи функции get_stylesheet_directory().
load_template( get_stylesheet_directory() . '/true-template.php' );
В этом примере мы как раз-таки записываем произвольную переменную в массив $wp_query->query_vars
, который при подключении файла будет разобран на отдельные переменные.
set_query_var( 'true_variable', 'Привет, файл' ); load_template( $template );
Вставляем этот код внутри подключаемого файла шаблона:
// выведет "Привет, файл" echo $true_variable; // элемент массива $wp_query->query_vars[ 'true_variable' ] превратился в переменную $true_variable
Этот аргумент функции появился только в версии WordPress 5.5, поэтому раньше приходилось довольствоваться первым способом.
load_template( $template, true, array( 'true_variable' => 'Привет, файл' ) );
Вставляем этот код внутри подключаемого файла шаблона:
// выведет "Привет, файл" echo $args[ 'true_variable' ];
Дело в том, что функция load_template()
сразу же закидывает путь, который мы передаём в неё, в функции require()
или require_once()
, которые, в отключие от include()
и include_once()
будут выдавать PHP-ошибку 500 при попытке подключения несуществующего файла.
$template = __DIR__ . '/true-template.php'; if( file_exists( $template ) ) { load_template( $template ); }
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.