WordPress 非官方中文站

提供 WordPress 插件、主题、程序及相关的中文资讯

WordPress 插件的错误管理

欢迎光临本站!我们致力为你提供更好的服务,请 订阅本站Feed 获取每天最新信息。WordPress 中文站主要为你提供 WordPress 最新的新闻,插件、主题更新的信息,入门的教程,使用的技巧,博客的资源与优化,安全问题的提醒与修复方案,以及博客相关的方方面面。

过去一周,我一直在开发一个 WordPress 插件。我的一个目标是想要具有特色且内容相关的错误信息。

我打算写完我的错误管理器,甚至已经有了一个基本的版本。我不断地跨越障碍,最后我问自己,“WordPress 会不会已经有自己的错误管理器了吗?”

因此,我迅速搜索代码,并找到了 WP_Error class

我所遇到的一个障碍就是,错误管理器无法将错误信息本地化。而 WP_error 则轻松地解决了这个问题。

添加错误信息

要添加错误信息,你所必须要做的第一件事情就是创建自己的 WP_error 实例。

  1. $myErrors = new WP_Error();

下一步要做的就是添加错误信息。

  1. $myErrors->add('access_denied', __('You do not have permission to do that.',$myLocalizationName));

这里有些问题要注意。error code (错误代码)可以用来查询完整的错误信息,并且可以用 __ function 来进行错误信息的本地化。

检索错误信息

在你添加了错误信息之后,你就想要通过某个点来进行检索。

检索错误信息很简单,只需调用 get_error_message 函数,并将错误代码(即 error code)传递给他即可。

  1. $errorMessage = $myErrors->get_error_message($code);

从那里将会输出错误信息给你。

应用

使用 WP_Error 类的办法可用于 WordPress 主题和插件。

对于插件,你的错误信息最好是作为类的一个成员(a memerb of a class)。使用类的办法可以确保获取全部错误信息,且避免命名冲突。

对于主题,你可以创建一个自己的雷,或者可以使用加了前缀的变量,尽量避免和其他变量冲突。

下载和代码实例

这里有一些可以下载的代码,以及一些关于这个类如何在主题里使用的例子。如前所述,插肩作者可能会需要使用这个类

这个代码假设放到主题里的“functions.php”文件内。

  1. class my_class {
  2.     function my_class() {
  3.         $this->localizionName = '';
  4.         $this->errors = new WP_Error();
  5.         $this->initialize_errors();
  6.     }
  7.     /* get_error - Returns an error message based on the passed code
  8.     Parameters - $code (the error code as a string)
  9.     Returns an error message */
  10.     function get_error($code = '') {
  11.         $errorMessage = $this->errors->get_error_message($code);
  12.         if ($errorMessage == null) {
  13.             return __("Unknown error.", $this->localizionName);
  14.         }
  15.         return $errorMessage;
  16.     }
  17.     /* Initializes all the error messages */
  18.     function initialize_errors() {
  19.         $this->errors->add('my_weird_error', __('Some weird error has occurred', $myLocalizationName));
  20.         $this->errors->add('access_denied', __('You do not have permission to do that.',$myLocalizationName));
  21.     } //end function initialize_errors
  22. }
  23. $myErrors = new my_class();
  24. echo $myErrors->get_error('my_weird_error');

上面的代码有两个辅助函数,一个是用于检索错误,另一个用于初始化错误。例子都是基本,但是可以告诉你如何使用 WP_Error 类。

结论

WP_Error 类有很多功能这里没有提到,但是如果你愿意,你可以仔细研究这些代码。这个类包含在 wp-includes 文件夹内的 classes.php 文件内。

WP_Error 是个很简单,也很强大的存储错误的办法,输出错误信息也很容易。并且最棒的是,错误信息还可以本地化。

原文:Error Management for WordPress Plugins

中文:WordPress 插件的错误管理

Tagged as:

8 Responses »

  1. 学习了

  2. 没有看完还以为博主要开发插件了呢,:-)

  3. 第一翻译同上,还以为我们的Jiang大哥终于要闪现插件的江湖了()

  4. 修正上一条的评论,翻译改成反应。
    呃。不知道这算不算垃圾评论。

  5. 呵呵,谢谢大家捧场,暂时还不太熟悉插件开发;不过可以慢慢学习啊!

  6. […] WordPress 插件的错误管理 […]

  7. 希望尽早看到这样的插件啊。wordpress的一些奇怪错误真的令人不思其解啊。

  8. […] 中文:WordPress 插件的错误管理 […]

Leave a Reply