web-dev-qa-db-ja.com

関数でページが使うテンプレートを調整しますか?

/stories/のようなパーマリンクがあるページがあれば、page-stores.phpという名前のテンプレートでページを作成でき、そのページがロードされたときにデフォルトのpage.phpの代わりにロードされるはずです( テンプレート階層を参照)

私が知りたいのは、2つのページテンプレート、おそらくpage.phppage2.phpがある場合、functions.phpファイルを使用して、ページに/stories/のパーマリンクがある場合にpage2.phpを使用することを指定できるかどうかです。

エンドユーザーにページテンプレートを選択させるためにページを編集するときにオプションがあることはわかっていますが、この場合は具体的に設定したいと思います。

2
cwd

これはうまくいくかもしれません:

add_filter('page_template', 'custom_page_template');

function custom_page_template($template){
  // check your permalink here
  if(get_query_var('pagename') === 'stories')
    return locate_template(array('page2.php', 'page.php')); 

  return $template; 
}
2
onetrickpony