带有自定义域的单个帖子的模板_重定向

时间:2011-02-22 作者:Jared

我有什么办法可以用is_single() 插件函数的内部。php文件?目前,我的代码是这样的:

if(is_single()) :
    function my_template() {
        include(PLUGINDIR . \'/supersqueeze/all.php\');
        exit;
    }
    add_action(\'template_redirect\', \'my_template\');
endif;
但出于某种原因,它根本不起作用。如果我删除if(is_single()), 它可以工作,但适用于所有页面。

然后,一旦我开始工作,我将需要再次对其进行过滤,以查看帖子是否有特定的自定义字段值,比如名称将是Design 值为Custom.

提前感谢任何能帮助我的人。

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

代码的问题是,在第一次加载插件时,在全局查询运行之前,您正在检查is\\u single(),因此is\\u single()仍然返回false。您应该在my\\u template函数中移动is\\u single()检查:

function my_template() {
    if(is_single() && have_posts() && \'Custom\' == get_post_meta(get_the_ID(), \'Design\')) {
    include(PLUGINDIR . \'/supersqueeze/all.php\');
    exit;
    }
}
add_action(\'template_redirect\', \'my_template\');

结束

相关推荐