Функция по сути подключает любой 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 ); }
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.