我正在开发一个Wordpress网站,它依赖于一个插件来激活网站以便正常运行。
该插件有一些我在网站模板文件中使用的有用功能。当插件处于活动状态时,一切都运行良好。如果停用插件,则不会加载内容。
在if(function_exists(...)
中包装这些函数显然可以解决这个问题,但我想知道在Wordpress中是否有更简洁的方法。是否有一个函数可以放在主题的functions.php文件中,可以检查每次调用它们时这些函数是否可用,如果不提供安全回退而不必将它们包装在function_exists()中?
感谢。
答案 0 :(得分:2)
如果您只是谨慎使用(1-2次),请使用if( function_exists() )
。如果您在不同的模板文件中多次调用该函数,我建议使用类似
在你的functions.php中
function mytheme_related_posts( $someparams = nil ) {
if( function_exists( 'related_posts' ) ) {
related_posts( $someparams );
} else {
echo 'Please enable related posts plugin';
}
}
然后在模板中使用mytheme_related_posts()
。
答案 1 :(得分:0)
我认为这是最明确的方式。它可以防止所有问题。我认为你可以编写一个函数,它可以检查每次调用它们时是否可以使用这些函数,但我几乎可以肯定它会给你带来更多麻烦,并且只需使用if(function_exist())就可以消耗更多内存。不要忘记else分支,它会正常工作。
答案 2 :(得分:0)
如果您想检查插件是否有效,那么您应该使用is_plugin_active()
功能 - 您可以在以下位置找到文档:http://codex.wordpress.org/Function_Reference/is_plugin_active
然后你也可以使用if(function_exists())来加倍确认:)