在unctions.php中正确使用插件函数

时间:2014-05-15 作者:Christof

我在我的一个WP网站上遇到了一个恼人的问题。我正在使用qtranslate插件和函数。在我的主题php中,我访问了该插件的一些函数。

现在,它似乎发挥了作用。激活主题的php包含在WP后端中(出于某种原因)。这意味着当我停用插件时,该插件中用于函数的函数。php不仅会导致前端中断,还会导致后端中断

致命错误:未定义函数\\u函数。

这会导致一种棘手的情况,因为您无法在损坏的后端重新激活插件。我的第一个想法是手动定义我访问的函数并上传这些函数。php通过FTP。这是可行的,但是你不能激活插件,因为它的一些功能已经定义好了。

解决这个问题的唯一方法(我发现)是重命名函数。php,重新激活插件,然后重命名函数。php返回。

事情把我带到了我的问题上(很抱歉这么长的介绍):在自定义主题中访问插件函数的指定方式是什么?使用function_exists(\'the_function\') 到处都不是很方便。WP是否为此提供了某种包装?还是我完全错误地看待这个问题?

1 个回复
SO网友:Todd Rowan

活动主题的功能。php包含在后端,因为可以从后端配置主题。

如果您的主题取决于插件的可用功能,那么您必须确保插件始终可用,或者使您的主题足够健壮,以处理不可用的情况。

您可以将需要插件函数的所有主题函数放入一个单独的php文件中,该文件仅在插件处于活动状态时包含。这将使您更容易在进行其他更新时短期停用插件。

所以在你的主题功能中。可以添加的php:

if (function_exists(\'plugin-function-name\'))
{
    include \'path/to/functions-that-need-the-plugin.php\';
}
然后,您只需检查函数是否存在一次,当插件不可用时,主题和后端仍将运行。

结束

相关推荐

需要通过Functions.Php注销脚本

嗯,我有点失望Wordpress注销脚本有多么困难。首先,我得到了所有句柄的列表,所以我查找了它,句柄是jquery migrate然后我将其添加到我的函数中。phpwp_dequeue_script(\'jquery-migrate\'); 还有这个wp_dequeue_script(\'jquery\'); 尽管脚本已正确注册,但它什么也不做。版本字符串出了什么问题,我想不出为什么它们仍然包含这些字符串,应该尽快在下一个WP版本中删除,它们只会在某些情况下阻止缓存正确缓存,这很烦人