locate_template()


WordPress関数locate_template()は、テーマファイルを特定し、必要に応じて読み込むために使用されます。この関数は、特定のテンプレートファイルを見つけるために便利です。

シンタックス

locate_template( array $template_names, bool $load = false, bool $require_once = true );

引数の説明:

  • $template_names (array) — 検索するテンプレートファイル名の配列。
  • $load (bool) — ファイルを読み込むかどうか。trueの場合、requireまたはrequire_onceで読み込む。
  • $require_once (bool)trueの場合、ファイルは一度だけ読み込まれる。

例1: テンプレートファイルを探す

以下のコードは、テンプレートファイルを探すだけで、読み込みは行いません。

<?php
$template = locate_template( array( 'header.php', 'footer.php' ), false, false );
echo $template;
?>

例2: テンプレートファイルを読み込む

以下のコードは、見つかったテンプレートファイルを読み込みます。

<?php
locate_template( array( 'sidebar.php' ), true, true );
?>

例3: 見つからなかった場合のデフォルト処理

テンプレートが見つからない場合にデフォルト処理を実行します。

<?php
$template = locate_template( array( 'custom-template.php' ) );
if ( ! $template ) {
    echo 'テンプレートが見つかりません。';
} else {
    require $template;
}
?>

例4: 必要に応じた読み込み

以下のコードは、特定の条件下でテンプレートを読み込みます。

<?php
if ( is_page() ) {
    locate_template( array( 'page-template.php' ), true );
}
?>

例5: テーマフォールバック

テーマのフォールバック処理としてテンプレートを探します。

<?php
$template = locate_template( array( 'custom-header.php', 'default-header.php' ) );
if ( $template ) {
    require $template;
}
?>

注意事項:

  • 引数$template_namesには、優先順位の高い順にテンプレート名を指定してください。
  • テーマに存在しないテンプレートファイルを指定するとエラーの原因になります。
  • $loadtrueに設定する場合は、必要なファイルが存在することを確認してください。

関連機能: