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