【问题标题】:Proper way to check system requirements for a WordPress plugin检查 WordPress 插件系统要求的正确方法
【发布时间】:2011-03-28 18:05:17
【问题描述】:

如果用户的系统不满足某些要求,我很好奇阻止用户激活我的插件的正确方法。进行检查很容易,我不需要任何帮助,我更好奇如何告诉 WordPress 退出并显示错误消息。

目前我在激活钩子方法中尝试了exit($error_message)die($error_message)。在显示我的消息且插件未激活时,还会显示一条消息,指出致命错误(见下图)。

有谁知道更好的方法,可以在正确的错误框中显示我的消息而不显示致命错误,对于新用户来说看起来真的很糟糕。

提前感谢您的帮助。

【问题讨论】:

    标签: error-handling conditional wordpress system-requirements


    【解决方案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 代码)。

    【讨论】:

    • 刚刚回到堆栈溢出,很抱歉您的答案回复迟了。我将在本周晚些时候检查它,并在验证后将其标记为答案。再次感谢您抽出宝贵时间
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 好电话,我将不得不调查一下。你知道 WordPress 是否有内置的激活异常处理程序或类似的东西可以捕获异常吗?
    • 我不确定 wordpress 是否有这种处理程序。但是因为它很容易在 php wordpress 中很可能不会有。
    猜你喜欢
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多