我很好奇如果他们的系统不满足某些要求,阻止用户激活我的插件的正确方法。做检查很简单,我不需要任何帮助,我更好奇如何告诉WordPress退出并显示错误信息。
目前我在激活挂钩方法中尝试了exit($error_message)
和die($error_message)
。显示我的消息并且未激活插件时,还会显示一条消息,指出致命错误(见下图)。
有没有人知道更好的方法,这会在正确的错误框中显示我的消息而不显示致命错误,对于新用户来说,看起来真的很糟糕。
感谢您提前提供任何帮助。
答案 0 :(得分: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代码)。
答案 1 :(得分:0)
但这只是一个想法。尝试检查wordpress版本并比较然后使用php通过自定义异常/错误。 PHP 5.0 try catch可以是一个很好的方法。这是一些资源。
http://www.w3schools.com/php/php_exception.asp
http://php.net/manual/en/internals2.opcodes.throw.php
您可以尝试第一个链接。这是非常基本的。谢谢!希望这些信息能有所帮助。