※ コメント・トラックバックはスパム対策のため、管理人の確認後に掲載されます。リアルタイムには反映されませんのでご了承ください。
- アニマルアイテム Index
- 気まぐれコンテンツ
- 極私的データベース
Home > Wordpressのこと > [覚書] ページで使用中のテンプレートを調べる方法
[覚書] ページで使用中のテンプレートを調べる方法
added : 2008-12-08
"sidebar.php" 内での条件分岐に使えるかも。
get_post_meta($post->ID, '_wp_page_template', true);
「page-1column.php」というページテンプレートの場合、「page-1column.php」が返ってきます。ファイル内で設定している "Template Name" ではないことに注意。また、値がない場合の返り値は空値です。
条件分岐の例
以下は、使用中のページテンプレートが「page-1column.php」の場合に処理を実行します。
if ( get_post_meta($post->ID, '_wp_page_template', true) == 'pege-1column.php' ) {- 処理内容
}
以下は、使用中のページテンプレートがデフォルトテンプレート(未設定)の場合に処理を実行します。
$pageTemplate = get_post_meta($post->ID, '_wp_page_template', true);if ( !$pageTemplate || $pageTemplate == 'default' ) {- 処理内容
}
デフォルトテンプレートの場合、たとえばページテンプレートを設定して保存していたページを後からデフォルトに戻すと meta_key "_wp_page_template" には "default" が設定されるため、「空値かどうか」だけでの条件分岐は成り立ちません。
このため、「何らかのページテンプレートを使用している場合」を条件とするなら、
$pageTemplate = get_post_meta($post->ID, '_wp_page_template', true);if ( $pageTemplate && $pageTemplate != 'default' ) {- 処理内容
}
となります。
is_page_template() を使わない理由
WordPress 2.6 現在、is_page_template() は正しく働きません。上に書いた、"_wp_page_template" が "default" であるときの処理がされていないため。
「特定のページテンプレートを使用しているかどうか」には使えます。
is_page_template('example.php')
2.7 では直ってるといいんですが。
- Category
- Wordpressのこと
[...] これらについては以下のページが役に立ちました。 [覚書] ページで使用中のテンプレートを調べる方法 [...]