我在我的一个WP网站上遇到了一个恼人的问题。我正在使用qtranslate插件和函数。在我的主题php中,我访问了该插件的一些函数。
现在,它似乎发挥了作用。激活主题的php包含在WP后端中(出于某种原因)。这意味着当我停用插件时,该插件中用于函数的函数。php不仅会导致前端中断,还会导致后端中断
致命错误:未定义函数\\u函数。
这会导致一种棘手的情况,因为您无法在损坏的后端重新激活插件。我的第一个想法是手动定义我访问的函数并上传这些函数。php通过FTP。这是可行的,但是你不能激活插件,因为它的一些功能已经定义好了。
解决这个问题的唯一方法(我发现)是重命名函数。php,重新激活插件,然后重命名函数。php返回。
事情把我带到了我的问题上(很抱歉这么长的介绍):在自定义主题中访问插件函数的指定方式是什么?使用function_exists(\'the_function\')
到处都不是很方便。WP是否为此提供了某种包装?还是我完全错误地看待这个问题?
SO网友:Todd Rowan
活动主题的功能。php包含在后端,因为可以从后端配置主题。
如果您的主题取决于插件的可用功能,那么您必须确保插件始终可用,或者使您的主题足够健壮,以处理不可用的情况。
您可以将需要插件函数的所有主题函数放入一个单独的php文件中,该文件仅在插件处于活动状态时包含。这将使您更容易在进行其他更新时短期停用插件。
所以在你的主题功能中。可以添加的php:
if (function_exists(\'plugin-function-name\'))
{
include \'path/to/functions-that-need-the-plugin.php\';
}
然后,您只需检查函数是否存在一次,当插件不可用时,主题和后端仍将运行。