概要
load_template 関数は、指定したテンプレートファイルを読み込むために使用される WordPress の関数です。これにより、テーマやプラグインでのテンプレート管理が容易になり、開発者は必要な HTML 構造を効率的に組織できます。
load_template 関数がよく使われる機能は以下の通りです。
1. テーマの特定のテンプレートファイルを動的に読み込む
2. プラグインでカスタムテンプレートを使用する
3. 子テーマのテンプレートファイルを優先的に読み込む
4. AJAX リクエストでテンプレートファイルを利用する
5. ウィジェットのために独自のテンプレートを提供する
6. ショートコードからテンプレートを表示する
7. 特定の条件に基づいて異なるテンプレートを読み込む
8. テストやデバッグ時に特定のテンプレートを強制的に読み込む
構文
load_template( $template_name, $require_once = false );
パラメータ
$template_name(string) – 読み込むテンプレートファイルのパス。$require_once(boolean) –trueの場合、ファイルを一度だけ読み込みます。
戻り値
- 成功した場合は、読み込まれたテンプレートの出力を返します。
関連する関数
使用可能なバージョン
load_template 関数は WordPress のバージョン 1.5 から利用可能です。
コアファイルのパス
この関数は、wp-includes/template.php に含まれています。
この関数のアクションでの使用可能性
| アクション | 使用例 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | 〇 |
| wp_roles_init | |
| setup_theme | 〇 |
| after_setup_theme | 〇 |
| set_current_user | |
| init | 〇 |
| register_sidebar | |
| wp_loaded | 〇 |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | 〇 |
| template_redirect | 〇 |
| get_header | 〇 |
| wp_head | 〇 |
サンプルコード
サンプル 1: テンプレートファイルの読み込み
<?php
// 'header.php' テンプレートファイルを読み込みます。
load_template( get_template_directory() . '/header.php' );
?>
このコードは、テーマディレクトリ内に存在する header.php ファイルを読み込みます。これにより、HTML ヘッダー部分が出力されます。
サンプル 2: 子テーマからのテンプレートの読み込み
<?php
// 子テーマの 'custom-template.php' を読み込む
load_template( get_stylesheet_directory() . '/custom-template.php' );
?>
ここでは、子テーマからカスタムテンプレートを読み込んでいます。子テーマが存在する場合、親テーマではなく子テーマのテンプレートを優先して読み込みます。
サンプル 3: AJAX リクエストでのテンプレート読み込み
<?php
// AJAX リクエストで 'ajax-template.php' を読み込む
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
load_template( get_template_directory() . '/ajax-template.php' );
wp_die(); // AJAX の場合は終了処理を行う
}
?>
このコードは、AJAX リクエストが行われているときに特定のテンプレートファイルを読み込む例です。
サンプル 4: 条件に基づいたテンプレートの読み込み
<?php
// 特定の条件に応じてテンプレートを読み込む
if ( is_single() ) {
load_template( get_template_directory() . '/single.php' );
} elseif ( is_page() ) {
load_template( get_template_directory() . '/page.php' );
}
?>
このコードは、ページがシングル投稿か静的ページかを判定し、適切なテンプレートファイルを読み込みます。
サンプル 5: カスタムウィジェットでのテンプレート読み込み
<?php
// カスタムウィジェット内でテンプレートを読み込む
class My_Widget extends WP_Widget {
public function widget( $args, $instance ) {
load_template( get_template_directory() . '/widget-template.php' );
}
}
この例では、カスタムウィジェットのクラス内でウィジェット用に特別なテンプレートファイルを読み込んでいます。ユーザーに表示される内容をカスタマイズできます。