使用子主题模板覆盖Twenty12模板文件,但在层次结构中处于较低位置

时间:2013-02-28 作者:davebowker

我(我认为)这里有一个有趣的问题。我想做的是创建一个全局归档页面,其中包含所有内容。日期、作者、类别等都在一页上。

我有一个孩子的主题,父母是二十一二。在二一二里面有档案。php,类别。php,标记。php,作者。php等,基本上所有方面的归档模板都是单独拆分的。

在我的子主题中,我想做的是创建一个存档。php模板,并覆盖所有父模板。

我了解创建归档。子文件中的php将覆盖父文件。php,但在它检查归档之前。php它将检查类别。php,并在使用归档之前使用该模板。我的孩子主题中的php。根据template hierarchy.

我知道至少有两种方法可以解决这个问题:

删除类别。php,标记。php等,从2012年开始。(不是最好的,因为任何更新都会还原这些文件)

  • 重新创建标签。php,类别。php等,并将我的布局复制/粘贴到每个模板文件中。(更好,但大量模板文件只会造成目录混乱。)
  • 我想知道是否可以在函数中加入一些内容。php覆盖层次结构,并强制WP使用my child archive。php用于所有归档页面。

    想法?

    你好Dave

    1 个回复
    最合适的回答,由SO网友:s_ha_dum 整理而成

    这是最低限度的测试--实际上几乎没有测试过--但是:

    function force_archive_php_wpse_88824() {
      if (is_main_query() && is_archive()) {
        include (get_stylesheet_directory().\'/archive.php\');
        exit;
      }
    }
    add_action(\'template_redirect\',\'force_archive_php_wpse_88824\');
    
    您正在中断模板加载过程,并强制使用您选择的文件。

    参考文献

    http://codex.wordpress.org/Plugin_API/Action_Reference/template_redirecthttp://codex.wordpress.org/Function_Reference/get_stylesheet_directory

    结束

    相关推荐

    WP_Query in functions.php

    我有一些代码要转换成函数。它工作得很好,直到我将其包装到所述函数中: $args = array( \'posts_per_page\' => -1, \'post_type\' => \'asset\', \'category_name\' => $cat ); $cat_query = new WP_Query( $args );