概要
locate_template
関数は、テンプレートファイルが存在するか確認するために使用され、指定したパスからテンプレートファイルを検索して返します。この関数は、特定のテンプレートファイルをテーマ内および親テーマから探したい場合に非常に便利です。よく使われるシーンには、以下のようなものがあります。
- カスタムページテンプレートの読み込み
- サイドバーウィジェットやフッターのカスタムテンプレートの利用
- 特定の投稿タイプやタクソノミー用のテンプレートロード
- プラグインのカスタムテンプレートをテーマに統合
- レスポンシブデザイン用の特定のテンプレートの読み込み
- エラーページや404ページのカスタム化
- ユーザー向けのログインページのカスタムテンプレート
- ショートコードによるカスタムテンプレートの生成
構文
locate_template( $templates, $load = false, $require_once = false );
パラメータ
$templates
(array|string): 検索するテンプレートファイル名またはその配列。$load
(bool): true の場合、見つかったテンプレートを読み込みます。$require_once
(bool): true の場合、テンプレートを require_once で読み込みます。
戻り値
見つかったテンプレートファイルのパス。ファイルが見つからない場合は空文字列を返します。
関連する関数
使用可能なバージョン
locate_template
関数は WordPress 1.5.0 で導入されました。
コアファイルのパス
locate_template
関数は、wp-includes/general-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: サイドバー用のカスタムテンプレートを読み込む
$sidebar = locate_template( 'sidebar-custom.php', true );
このコードでは、sidebar-custom.php
というテンプレートファイルが存在するか確認し、存在すれば自動的に読み込まれます。
サンプル2: カスタム404ページの導入
$custom_404 = locate_template( '404-custom.php', true );
このコードは、カスタムの404ページのテンプレートファイルを探し、存在すればそれを読み込みます。
サンプル3: セクション毎のテンプレートを統合
$header_template = locate_template( array( 'header-custom.php', 'header.php' ), true );
このコードでは、「header-custom.php」が見つからない場合、デフォルトの「header.php」を探し、見つかったものを読み込みます。
サンプル4: カスタム投稿タイプに特化したテンプレートの取得
$custom_post_template = locate_template( 'single-custom-post.php', true );
このコードは、特定のカスタム投稿タイプ用のテンプレートを確認し、あれば読み込みます。
サンプル5: プラグイン用の特別なテンプレートを探す
$plugin_template = locate_template( 'plugin-template.php', true );
このコードでは、プラグインのために用意されたテンプレートを見つけて読み込みます。
これらのサンプルコードは著作権フリーのものであり、具体的な参照元は存在しません。