未定义函数错误可能有多种原因:
插件加载其函数定义的时间可能晚于template_include
或仅在管理后端。
例如,如果插件使用namespace, 但您调用的函数没有该名称空间。或者函数实际上是一个类方法,您将其视为函数…
另一个问题是:为什么要直接调用该函数?模板应该具有尽可能少的依赖关系。假设有人在插件中发现安全问题,您必须将其关闭。您真的要编辑所有模板文件吗?可能不会。:)
最好不要将该依赖项放在模板之外,而是调用自定义操作。例如,在模板中,可以将直接调用替换为操作调用:
do_action( \'frontend.message\' );
在您的主题中
functions.php
, 为该操作注册回调:
add_action( \'frontend.message\', \'my_frontend_message\' );
function my_frontend_message()
{
if ( ! function_exists( \'plugin_frontend_message\' ) ) {
// Show debug info for those who can do something about it.
if ( current_user_can( \'manage_option\' ) ) {
print \'<p class="error">Function plugin_frontend_message() not found.</p>\';
}
return;
}
print plugin_frontend_message();
}
如果你现在关闭插件,不会有什么不好的事情发生,你的访问者只会看到一条消息而什么也看不到。