模板重定向is_Tax()不起作用

时间:2012-06-16 作者:Paul Dumitru

我试图在wordpress中进行模板重定向,但部分成功

  function ahaali_qa_theme_redirect(){
    global $wp;
    $plugindir = dirname(__FILE__);

    if(is_archive()){
        $tname = \'archive-question.php\';
        if(file_exists(TEMPLATEPATH.\'/\'.$tname)){
            $returntemplate = TEMPLATEPATH.\'/\'.$tname;
        }else{
            $returntemplate = $plugindir.\'/default-template/\'.$tname;
        }
        ahaali_do_theme_redirect($returntemplate);
    }elseif(is_single()){
        $tname = \'single-question.php\';
        if(file_exists(TEMPLATEPATH.\'/\'.$tname)){
            $returntemplate = TEMPLATEPATH.\'/\'.$tname;
        }else{
            $returntemplate = $plugindir.\'/default-template/\'.$tname;
        }
        ahaali_do_theme_redirect($returntemplate);
    }elseif(is_archive() && is_tax(\'question_category\')){
        $tname = \'taxonomy-question_category.php\';
        if(file_exists(TEMPLATEPATH.\'/\'.$tname)){
            $returntemplate = TEMPLATEPATH.\'/\'.$tname;
        }else{
            $returntemplate = $plugindir.\'/default-template/\'.$tname;
        }
        ahaali_do_theme_redirect($returntemplate);
    }
}
除了is\\u tax()之外,其他一切都正常,有人能解释一下我是怎么做的,或者我做错了什么吗?

非常感谢。

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

这只是一个简单的php语法问题-任何满足条件的东西is_archive() && is_tax(\'question_category\') 第一次也将返回trueif(is_archive()), 因此,您的代码永远无法达到该测试。

结束

相关推荐

自定义发布类型和TEMPLATE_REDIRECT

我有两种自定义的post类型(例如post\\u type\\u 1和post\\u type\\u 2),我想将它们重定向到独立的模板(single-post\\u type\\u 1.php和single-post\\u type\\u 2.php)来处理它们的显示。我不想把显示模板放在主题文件夹中,因为我想让它们独立于各自的插件文件夹中。如何让它们中的每一个注册一个template\\u重定向挂钩而不影响另一个?或者我应该使用不同的技术?目前,我正在插件1中执行此操作:add_action( \'t