get_page_templates()


WordPressのget_page_templates()関数は、テーマ内で利用可能なページテンプレートのリストを取得するために使用されます。この関数は、テンプレートファイルの名前と対応する説明を配列として返します。

構文

get_page_templates( $theme = null, $post_type = 'page' );

引数の説明:

  • $theme (WP_Theme|null) — テンプレートを取得するテーマオブジェクト。デフォルトは現在のテーマ。
  • $post_type (string) — テンプレートを取得する投稿タイプ。デフォルトは’page’。

例1: 利用可能なページテンプレートのリストを取得

この例では、現在のテーマで利用可能なすべてのページテンプレートを取得します。

$templates = get_page_templates(); print_r($templates);

例2: 特定の投稿タイプのテンプレートを取得

この例では、カスタム投稿タイプ’portfolio’のテンプレートを取得します。

$templates = get_page_templates(null, 'portfolio'); print_r($templates);

例3: テンプレート名とファイルパスの表示

この例では、テンプレート名とそのファイルパスを表示します。

$templates = get_page_templates(); foreach($templates as $name => $file) { echo 'テンプレート名: ' . $name . ', ファイルパス: ' . $file . '<br>'; }

例4: 特定のテンプレートが存在するか確認

この例では、’Full Width’という名前のテンプレートが存在するか確認します。

$templates = get_page_templates(); if(array_key_exists('Full Width', $templates)) { echo 'Full Widthテンプレートが存在します。'; } else { echo 'Full Widthテンプレートは存在しません。'; }

例5: テンプレートの説明を表示

この例では、テンプレートの説明を表示します。

$templates = get_page_templates(); foreach($templates as $name => $file) { $template_data = get_file_data($file, array('Template Name' => 'Template Name', 'Description' => 'Description')); echo 'テンプレート名: ' . $template_data['Template Name'] . ', 説明: ' . $template_data['Description'] . '<br>'; }

例6: テンプレートをドロップダウンリストで表示

この例では、テンプレートをドロップダウンリストとして表示します。

$templates = get_page_templates(); echo '<select>'; foreach($templates as $name => $file) { echo '<option value="' . $file . '">' . $name . '</option>'; } echo '</select>';

注意点

  • テンプレートファイルはテーマディレクトリ内に存在する必要があります。
  • テンプレートファイルのヘッダーコメントにTemplate NameDescriptionが含まれている必要があります。
  • カスタム投稿タイプのテンプレートを取得する場合、その投稿タイプが正しく登録されていることを確認してください。

関連機能: