web-dev-qa-db-ja.com

動的なホームページ(記事リスト)にページテンプレートを設定することは可能ですか?

ページを作成または編集するときに、使用するテーマに応じてページテンプレートを設定できることがよくあります。 "default"と "with sidebar"テンプレートがあるとしましょう。

私のホームページは、デフォルトのWordpress設定と同じように、最後の記事のリストです。静的ページとして設定されていません。

このページに "with sidebar"テンプレートを設定することは可能ですか?

1

テンプレート階層にはフィルターのセットがあります クエリの各タイプに対してロードされるテンプレートを変更できます。この場合、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' );
1
Milo