WordPress 非官方中文站

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

插件开发者必须了解的 WordPress 2.6

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

Wordpress 的安装是集成的文件包,但是有两个特殊的情况,即 wp-config.php 配置文件和 wp-content 文件包,这两个不会在博客升级的过程中被覆盖。在 WordPress 2.6 时代,他们的位置将由用户个人决定,甚至可能移出 WordPress 的根目录之外。这将是对(插件开发者的)编码习惯的一个巨大挑战。

插件开发者可能会需要脚本程序来猜测它们的位置(比如 require() 文件),或者包含 wp-config.php 文件来生成一个 WordPress化的环境。

猜测 wp-content 的路径

WordPress 2.6 允许高级用户通过常量指定 wp-content 的位置(物理位置和网址),因此这个目录你可以随意放置。

过去通常是这样:

  1. $plugin_path = ABSPATH . '/wp-content/plugins/' . plugin_basename(dirname(__FILE__));
  2. $plugin_url = get_option('siteurl') . '/wp-content/plugins/' . plugin_basename(dirname(__FILE__));

现在你必须这样,这个目录可能会被藏到任何地方:

  1. // Pre-2.6 compatibility
  2. if ( !defined('WP_CONTENT_URL') )
  3.     define( 'WP_CONTENT_URL', get_option('siteurl') . '/wp-content');
  4. if ( !defined('WP_CONTENT_DIR') )
  5.     define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
  6. // Guess the location
  7. $plugin_path = WP_CONTENT_DIR.'/plugins/'.plugin_basename(dirname(__FILE__));
  8. $plugin_url = WP_CONTENT_URL.'/plugins/'.plugin_basename(dirname(__FILE__));

在 WordPress 2.6 中,常量 WP_CONTENT_DIR 和 WP_CONTENT_URL 可由用户指定,或者在 wp-settings.php 中设置。

包含 wp-config.php 文件

在 WordPress 2.6 中,你可以将 wp-config.php 文件放到博客的根目录,也可以将它移动到上级目录(这意味着将此文件移出站长文档根目录)

过去通常是这样:

  1. require_once('../../../wp-config.php');

现在必须这样:

  1. $root = dirname(dirname(dirname(dirname(__FILE__))));
  2. if (file_exists($root.'/wp-load.php')) {
  3.     // WP 2.6
  4.     require_once($root.'/wp-load.php');
  5. } else {
  6.     // Before 2.6
  7.     require_once($root.'/wp-config.php');
  8. }

在 WordPress 2.6 中,基本上由 wp-load.php 代替了原来的 wp-config.php 文件,负责载入整个 WordPress 环境。

然而,如 GamerZ 在评论中所指出的,这可能还无法工作。为什么呢?因为不仅配置文件可能出现在任何地方,由于 wp-content 目录也可能被移动,因此相对路径也会变化。

从这一点上说,我没有想到办法可以可以同时猜出 wp-config.php 文件和 wp-content 目录的办法。要想 100% 简化,需要一个可编辑的“独立”的文件包含 wp-config 文件,这样高级用户移动 wp-content 目录的时候,可以手动编辑路径(如果前面例子中的 $root 变量)。

原文:What Plugin Coders Must Know About WordPress 2.6

中文:插件开发者必须了解的 WordPress 2.6

Tagged as: ,

6 Responses »

  1. 你好,我的wp在搬家之后就不能发布文章了,后台点“撰写”没有反应

    用 windows live writer 发布日志提示

    尝试登陆时发生意外错误

    服务器响应无效 - 从日志服务器接受的对 blogger.getusersblogs 方法的相应无效:

    invalid response document returned from xmlrpc server

    其他都正常,不知道如何解决~~

  2. 是不是你的博客设置有问题,删除原来的博客帐户,重新建立一个 wordpress 帐户试试看能否解决问题。

  3. 这里的确很专业。

  4. 欢迎西岸网友经常光临哦 :)

  5. 我升到2.6正式版后,永久链接是第二种,全部失效… 用第一种倒是可以读到内容…
    昏倒…

  6. 不知道有几个人会使用上述新功能

Leave a Reply