web-dev-qa-db-ja.com

テンプレート階層の変更

WPデフォルトのテンプレート階層を変更する簡単な方法はありますか?

例えば;

テーマのディレクトリ構造を、条件に基づいてここで提案したテンプレート階層から完全に変更されるように変更したいとします。

http://codex.wordpress.org/Template_Hierarchy

すべての種類のページ(is_single()is_home()など)に対して常に1つのテンプレートファイルを開くようにしたいのであれば、出力を提供するために自分のパターンを作成します。

どうもありがとう!

1
Alex

このフィルタを試す

function wpse_63614_restructure_template_hierarchy( $template ){
    return get_template_directory().'/filename.php';
}
add_filter( 'template_include', 'wpse_63614_restructure_template_hierarchy' );

ファイル名は、テーマフォルダで呼び出したいファイルになります。子テーマには代わりにget_stylesheet_directoryを使用します。

編集:

あるいはChip Bennettが示唆しているように、私も感じた方が良いだろう。以下の方法でtemplate_redirectフックを使用できます。必要に応じて優先順位を設定できます。

function wpse_63614_restructure_template_hierarchy(){
    include( get_template_directory().'/filename.php' );
    exit;
}
add_action( 'template_redirect', 'wpse_63614_restructure_template_hierarchy' );
3
Joshua Abenazer