ページを作成または編集するときに、使用するテーマに応じてページテンプレートを設定できることがよくあります。 "default"と "with sidebar"テンプレートがあるとしましょう。
私のホームページは、デフォルトのWordpress設定と同じように、最後の記事のリストです。静的ページとして設定されていません。
このページに "with sidebar"テンプレートを設定することは可能ですか?
テンプレート階層にはフィルターのセットがあります クエリの各タイプに対してロードされるテンプレートを変更できます。この場合、home_template
を使用できます。
Theme Mods API/Customizer APIを介して、テンプレートを選択するための独自のインターフェイスを実装するためにいくつかの作業を行う必要があります。また、テーマオプションページを作成できるプラグインもいくつかあります。
この例では、home_template
をフックし、wpd_home_template_shows_sidebar
という名前のオプションを確認し、テンプレートwith-sidebar.php
が存在する場合はロードします。いずれの場合も、関数に渡されるreturn
$template
に注意してください。
function wpd_home_template( $template ) {
if( get_option( 'wpd_home_template_shows_sidebar' ) ){
$template = locate_template( 'with-sidebar.php' );
}
return $template;
}
add_filter( 'home_template', 'wpd_home_template' );