web-dev-qa-db-ja.com

他のテーマフォルダからphpテンプレートファイルを取得する

他のテーマフォルダからphpテンプレートファイルを取得する方法


例えば ​​:

私の現在のテーマフォルダはpromaxです。 archive.phpに取り組んでいて、子テーマarchive.phpと呼ばれる他のフォルダーからのpromax-child'の中にテンプレートファイルを含み、includesと呼ばれるフォルダーの中にarchive-desc.phpというファイルがあります。

4
Enjay

テンプレートは template_include フィルタでフィルタリングできます。この例では、すべてのアーカイブページのアーカイブテンプレートをフィルタリングします。特定のアーカイブに対してこれを実行する必要がある場合は、条件として is_post_type_archive( $post_types ) を使用します。これをあなたの子供のテーマのfunctions.phpファイルに入れてください。

function my_archive_filter( $template) {
    if ( is_archive() ) {
        return 'path/to/includes/archive-desc.php'; // Path to your child theme template.
    }
    else {
        return $template;
    }
}

apply_filters( 'template_include', 'my_archive_filter' );

編集:カスタムテンプレートが何らかの理由で失敗した場合、デフォルトのテンプレートに戻るようになりました。

2
iyrin