目次
specialページの下層ページだけ、特殊な専用固定ページテンプレートを使いたい
つまりはこんな感じ
- /special/…通常の固定ページテンプレート
- /special/hogehoge/…専用テンプレート
- /special/fugafuga/…専用テンプレート(hogehogeの時と同じ)
今回は、管理画面から選択できるカスタムテンプレートを使わず、親のスラッグ情報から自動でテンプレートを振り分けるパターンを試みます。
親ページのスラッグを確認する
※直接の親だけでなく、祖先まで確認する方法は下記記事を確認してください。
【WordPress】特定の固定ページの子孫ページかどうかを判別したい
functions.php
function is_parent_slug() {
global $post;
if ($post->post_parent) {
$post_data = get_post($post->post_parent);
return $post_data->post_name;
}
}
page.php
<?php if(is_parent_slug('special')) {
locate_template('template-special.php',true);
}else{
locate_template('template-normal.php',true);
}
?>
これで、親ページがspecialのときはtemplate-special.phpの内容、それ以外の普通のときはtemplate-normal.phpの内容でページを表示することができます。
※local_template()で読み込んでいる個所は、get_template_part()を使っても問題ないです。
コメント