1

我很好奇如果系统不符合特定要求,阻止用户激活我的插件的正确方法。做检查很容易,我不需要任何帮助,我更好奇如何让WordPress退出并显示错误消息。正确的方法来检查WordPress插件的系统需求

目前我已经在激活挂钩方法中试过exit($error_message)die($error_message)。显示我的消息并且未激活插件时,还会显示一条说明致命错误的消息(请参阅下图)。

enter image description here

有谁知道一个更好的方式,将在适当的错误框显示我的消息,而不显示致命错误,它只是看起来很糟糕了新用户一看就知道。

感谢您提前提供任何帮助。

回答

1

这是有点无证的,你可能已经注意到了。取而代之的die(),像这样做:

$plugin = dirname(__FILE__) . '/functions.php'; 
deactivate_plugins($plugin); 
wp_die('<p>The <strong>X</strong> plugin requires version WordPress 2.8 or greater.</p>','Plugin Activation Error',array('response'=>200,'back_link'=>TRUE)); 

以上wp_die的线条()是停用此插件。请注意,在这种情况下我们使用functions.php,因为那是我的插件名称元数据注释声明 - 如果您使用不同的文件,则更改上面的代码。请注意,该路径对于比赛非常具体。所以,如果你想看看你的路径通常会是什么,请使用print_r(get_option('active_plugins'));die();转储出来,以便知道你需要什么路径。由于我有一个plugin_code.php,其中的插件代码是其余的,并且因为它与functions.php位于同一目录中,所以我只需要为dirname(__FILE__)做适当的路径。

请注意,wp_die()语句的结尾很重要,因为它提供了一个反向链接并防止出现错误500(这是wp_die()的默认Apache代码)。

+0

刚刚回来了堆栈溢出,所以很抱歉对你的回答迟到的回应。本周晚些时候我会检查出来,并在确认后将其标记为答案。再次感谢您抽出时间 – macguru2000 2012-10-17 00:03:42

0

但这只是一个想法。尝试检查wordpress版本并比较,然后使用php通过自定义异常/错误。 PHP 5.0尝试catch可以是一个很好的方法。这里有一些资源。

http://www.w3schools.com/php/php_exception.asp

http://php.net/manual/en/internals2.opcodes.throw.php

您可以尝试第一个链接。这是非常基本的。谢谢!希望信息会有所帮助。

+0

良好的通话,我将不得不调查。你知道WordPress是否有内置的激活异常处理程序或类似的东西可能会捕获异常? – macguru2000 2011-03-28 18:45:31

+0

我不确定wordpress是否有这种类型的处理程序。但是,由于在php wordpress中很容易,它很可能不会有。 – Sisir 2011-03-28 18:51:09

相关问题