目次
公開固定ページのテンプレート指定を一覧にする
この一覧は各固定ページに保存された個別テンプレートの指定を調べます。実際に読み込まれるテンプレート全体の解析ではありません。
設置方法
専用プラグインまたは子テーマfunctions.phpのどちらか一方へ追加します。
ログイン中の管理者だけが見られる検証用固定ページで、ショートコードを使います。
function waza_page_template_assignments($atts) {
if (!current_user_can('manage_options')) return '';
$atts=shortcode_atts(array('page'=>1),$atts,'page_template_list');
$page=max(1,absint($atts['page']));
$items=get_posts(array('post_type'=>'page','post_status'=>'publish','posts_per_page'=>50,'paged'=>$page,'orderby'=>'ID','order'=>'ASC','suppress_filters'=>false));
if (!$items) return '<p>この範囲に公開固定ページはありません。</p>';
$out='<ul>';
foreach($items as $item) {
$slug=get_page_template_slug($item->ID);
$label=$slug ? $slug : '個別テンプレートの指定なし';
$out.='<li>ID '.esc_html((string)$item->ID).':<a href="'.esc_url(get_permalink($item)).'">'.esc_html(get_the_title($item)).'</a> — '.esc_html($label).'</li>';
}
return $out.'</ul><p>50件単位です。次の範囲はショートコードのpageを1増やしてください。</p>';
}
add_shortcode('page_template_list','waza_page_template_assignments');
1〜50件目は次の例です。
[page_template_list page="1"]次の範囲はpage=”2″に変更します。
適用範囲・確認・戻し方
公開固定ページをID順に50件ずつ取得します。下書きと非公開ページは対象外です。
指定なしでもpage-{slug}.phpやpage-{id}.phpなどが使われる場合があり、ブロックテーマの解決規則も別です。
元に戻すときはショートコードを置いた検証用ページから外し、関数と登録を停止します。
参照:get_page_template_slug、クラシックテーマの固定ページテンプレート。
ローカルWordPressで関数の出力を確認し、実管理画面での表示・操作は別の検証として残しています。



