在插件对主题函数执行操作之前声明函数。php文件

时间:2014-04-22 作者:Alain Jacomet Forte

我正在使用一个插件,该插件使用以下格式声明函数:

if (!function_exists(\'ABdevDND_get_current_post_type\')){
    function ABdevDND_get_current_post_type() {
       ...
    }
}
我试图在我的主题函数中声明它。php文件,只需使用:

function ABdevDND_get_current_post_type() {
    ...
}
但我的时机不对Fatal error: Cannot redeclare ABdevDND_get_current_post_type().

如何以及在何处声明此函数,以便在插件之前声明它?

2 个回复
SO网友:fuxia

您不能在主题中这样做,因为主题是在插件之后加载的。

使用自定义插件,当然可以使用mu插件,因为它们比普通插件加载得更早。

SO网友:Brian Fegter

与此相反,我最近遇到了一个主题在插件激活时覆盖插件函数的问题。在插件激活之前加载主题代码,以缓冲任何致命错误。您将看到之前声明的错误,即使操作链在激活后仍能正常工作。您可以使用此选项来禁用插件页面的函数重写,因为您很可能永远都不需要它。

WordPress可以在之前尝试激活插件plugins_loaded, 但事实并非如此。

global $pagenow;
if ( $pagenow !== \'plugins.php\' )
{
    //declare your function here
}

结束

相关推荐

How can I find plugins' slug?

我想知道如何才能找到插件的slug(slug=WordPress用来更新插件和确定哪些插件当前处于活动状态的内部名称)?它通常是插件的文件夹名,但如果插件没有文件夹,则是其文件名(如hello.php)。是否有其他例外情况?大小写字符重要吗</插件的slug是否可以与其文件夹名不同?如果有一个叫做hello的插件呢。php和另一个/您好。php/您好。php