Articles

WordPress.org

トップ

その他の情報 #その他の情報

Page template in subdirectory #Page template in subdirectory

ページテンプレートがテーマのサブディレクトリにある場合 (WP 3.以降)、ページテンプレートはテーマディレクトリにあることが望ましい。例:

is_page_template( 'templates/about.php' );

トップ

Cannot Be Used Inside The Loop #Cannot Be Used Inside The Loop

ループ中に特定のグローバル変数が上書きされるため is_page_template() は機能しません。 ループの後でこれを使うには、ループの後で wp_reset_query() を呼び出す必要があります。

代替案 #代替案

ページテンプレートに割り当てられたすべての投稿の post_meta 内に、ページテンプレートのスラッグが格納されているので、任意のページにページテンプレートが割り当てられたかどうかを調べるために post_meta に直接クエリーできるようになっています。

関数 get_page_template_slug( $post_id ) は、現在割り当てられているページテンプレートのスラッグ (またはテンプレートが割り当てられていない場合は空文字列 – または $post_id が実際のページに対応していない場合は false) を返します。 ループの中でも外でも)どこでもこれを使えば、ページがページテンプレートに割り当てられているかどうかを簡単に判断することができます。