如何在中途退出插件的执行?

时间:2011-10-04 作者:JVC

我有一个插件,我想确保它只在单数帖子、页面等上运行。我使用的是is\\u singular()函数,它工作得很好,但如果我这样做,它只会将执行返回到插件的其余部分:

function singular_check(){
    if(is_singular())
        return;
}
我在这样的钩子中执行它:

add_action(\'wp\', \'singular_check\');
我需要让我的整个插件在那一点上退出,并返回到执行插件下游的任何其他内容。有人知道怎么做吗?

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

一个可能的解决方案是延迟挂接(例如模板重定向),进行条件检查。如果通过,请包括(或要求)一个包含所需内容的文件。

<?php
add_action( \'template_redirect\', \'wpse30291_template_redirect\' );
function wpse30291_template_redirect()
{
    if( ! is_singular() ) return;
    require_once( \'your-file.php\' );
}
如果your-file.php 包含与之前发生的事情挂钩的函数(例如。initwp). 但如果your-file.php 包含修改内容的内容(挂钩the_titlethe_content, 例如)那就好了。

结束

相关推荐