<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WordPress 非官方中文站 &#187; 插件开发</title>
	<atom:link href="http://wpchina.org/category/wordpress-plugins/wordpress-plugins-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://wpchina.org</link>
	<description>提供 WordPress 插件、主题、程序及相关的中文资讯</description>
	<lastBuildDate>Tue, 13 Dec 2011 02:10:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>WordPress 插件兼容性检查工具</title>
		<link>http://wpchina.org/wordpress-plugin-compatibility-checker-553/</link>
		<comments>http://wpchina.org/wordpress-plugin-compatibility-checker-553/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 21:00:15 +0000</pubDate>
		<dc:creator>Jiang</dc:creator>
				<category><![CDATA[博客工具]]></category>
		<category><![CDATA[插件开发]]></category>

		<guid isPermaLink="false">http://wpchina.org/wordpress-plugin-compatibility-checker-553/</guid>
		<description><![CDATA[<p><a href="http://wpchina.org/wordpress-283-chinese-release-550/" target="_blank">WordPress 又发布新版本</a>了，这是一个令人头疼的问题。每次 WordPress 升级，我们都要考虑，我们的插件能否在新版本的 WordPress 下工作正常。 </p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wpchina.org/wordpress-283-chinese-release-550/" target="_blank">WordPress 又发布新版本</a>了，这是一个令人头疼的问题。每次 WordPress 升级，我们都要考虑，我们的插件能否在新版本的 WordPress 下工作正常。 </p>
<p>我见过许多网友因为这个原因而推迟升级 WordPress 。WordPress 官方文档为维护了一个不同版本下兼容性的<a href="http://wordpress.org/search/plugin+compatibility" target="_blank">插件列表</a>。<a href="http://plugincheck.bravenewcode.com/" target="_blank">WordPress 插件兼容检查工具</a>则是一个对插件进行索引并提供兼容性检查的服务。 </p>
<p>这个插件提供了一个检查插件兼容性的办法；不过在考虑是否升级的时候，这个工具提供给你的只是参考性意见，而不是做出判断的依据。WordPress 文档中的插件兼容性部分是最为精准的途径。 </p>
<p>这个插件兼容性检查工具现在索引了超过7500个插件，其中5040个插件完全兼容于 <a href="http://wpchina.org/wordpress-283-chinese-release-550/" target="_blank">WordPress 2.8</a>。 </p>
<p>这个工具使用了几个标准来判断是否兼容，包括支持的 WordPress 最低版本和最高版本，是否已经被硬编码入 WordPress，是否兼容 PHP4，是否直接连接数据库而没有使用 WordPress 所提供的 DB 对象等。 </p>
<p>如果你是一个插件开发者，你可以使用这个工具来看看插件是否有问题。 </p>
<p>这个兼容性结果是使用工具来提供的，并且精准结果，因此只能用于参考。WordPress 文档提供的兼容性列表示检查插件是否兼容于 WordPress 2.8 的确切途径。感谢 <a href="http://wpengineer.com/wordpress-plugin-compatibility-checker/" target="_blank">Alex</a>。 </p>
<p>原文：<a href="http://weblogtoolscollection.com/archives/2009/06/04/wordpress-plugin-compatibility-checker/" target="_blank">WordPress Plugin Compatibility Checker</a> </p>
<p>中文：<a href="http://wpchina.org/wordpress-plugin-compatibility-checker-553/" target="_blank">WordPress 插件兼容性检查工具</a> by <a href="http://wpchina.org/" target="_blank">WordPress 非官方中文站</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wpchina.org/wordpress-plugin-compatibility-checker-553/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress 插件主题开发起步常用资源教程</title>
		<link>http://wpchina.org/wordpress-plugin-theme-development-resources-549/</link>
		<comments>http://wpchina.org/wordpress-plugin-theme-development-resources-549/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 23:40:00 +0000</pubDate>
		<dc:creator>Jiang</dc:creator>
				<category><![CDATA[主题开发]]></category>
		<category><![CDATA[插件开发]]></category>

		<guid isPermaLink="false">http://wpchina.org/wordpress-plugin-theme-development-resources-549/</guid>
		<description><![CDATA[<p>如果你有心开发 WordPres 插件或者主题，这里有一些能够帮上你的资源。尽管可能有所遗漏，但这些资源可以很方便地将你的想法转换为 <a href="http://wpchina.org/" target="_blank">WordPress</a> 插件或者主题。 </p>]]></description>
			<content:encoded><![CDATA[<p>很多次你很想要自己开发一个 WordPress 插件或者 WordPress 主题 ，然而许多人并不知道如何将他们的想法来转换为有用的插件或者漂亮的主题。 </p>
<p>如果你有心开发 WordPres 插件或者主题，这里有一些能够帮上你的资源。尽管可能有所遗漏，但这些资源可以很方便地将你的想法转换为 <a href="http://wpchina.org/" target="_blank">WordPress</a> 插件或者主题。 </p>
<h3>WordPress 插件开发便捷资源</h3>
<ul>
<li><a href="http://codex.wordpress.org/Writing_a_Plugin" target="_blank">WordPress 文档 &#8211; 开发插件</a>&#160; [级别：新手及以上]（这是我开始学习的地方，也是我乐意推荐的） </li>
<li><a href="http://markjaquith.wordpress.com/2006/03/04/wp-tutorial-your-first-wp-plugin/" target="_blank">你的第一个 WordPress 插件</a>&#160; [级别：新手] &#8211; Mark Jaquith </li>
<li><a href="http://www.ibm.com/developerworks/opensource/library/os-eclipse-wordpress/index.html" target="_blank">使用 Eslipse PDT 开发 WordPress 插件</a>&#160; [级别：中级及以上] – IBM </li>
<li><a href="http://net.tutsplus.com/videos/screencasts/a-crash-course-in-wordpress-plugin-development/" target="_blank">WordPress 插件开发速成教程</a>&#160; [级别：新手及以上] – Nettuts+ </li>
<li><a href="http://www.askapache.com/wordpress/writing-wordpress-plugins.html" target="_blank">快速开发 WordPress 插件</a>&#160; [级别: 专业及以上] – Ask Apache </li>
</ul>
<h3>WordPress 主题开发便捷资源</h3>
<ul>
<li><a href="http://codex.wordpress.org/Theme_Development" target="_blank">WordPress 文档 – 主题开发</a>&#160; [级别：新手及以上] </li>
<li><a href="http://css-tricks.com/designing-for-wordpress-complete-series-downloads/" target="_blank">WordPress 设计</a>&#160; [级别: 新手以及以上] – CSS Tricks </li>
<li><a href="http://www.smashingmagazine.com/2009/05/27/wordpress-theme-development-frameworks/" target="_blank">WordPress 主题开发框架</a> [级别：中级及以上] – Smashing Magazine </li>
<li><a href="http://themetation.com/2008/07/14/how-to-create-wordpress-themes-from-scratch-part-1/" target="_blank">如何从零创建 WordPress 主题</a>&#160; [级别：新手及以上] – ThemeTation </li>
<li><a href="http://wptoy.com/resources/wordpress-theme-development-check-list-pdf-version/" target="_blank">WordPress 主题开发明细</a> (<a href="http://wptoy.com/download/1" target="_blank">下载 PDF 格式文档</a>) [级别：新手及以上] – WP Toy </li>
</ul>
<p>你是 WordPress 主题或插件的开发者么？还是一个新人呢？如果你认为还有哪些 WordPress 插件主题开发资源对大家有意，欢迎指出。 </p>
<p>原文：<a href="http://weblogtoolscollection.com/archives/2009/06/06/wordpress-plugin-theme-development-resources/" target="_blank">Resources To Get You Kick Started With WordPress Plugin And Theme Development</a> </p>
<p>中文：<a href="http://wpchina.org/wordpress-plugin-theme-development-resources-549/">WordPress 插件主题开发起步常用资源教程</a> by <a href="http://wpchina.org/" target="_blank">WordPress 非官方中文站</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wpchina.org/wordpress-plugin-theme-development-resources-549/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>插件开发者必须了解的 WordPress 2.6</title>
		<link>http://wpchina.org/what-plugin-coders-must-know-about-wordpress-26-270/</link>
		<comments>http://wpchina.org/what-plugin-coders-must-know-about-wordpress-26-270/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 23:15:27 +0000</pubDate>
		<dc:creator>Jiang</dc:creator>
				<category><![CDATA[插件开发]]></category>
		<category><![CDATA[新版信息]]></category>
		<category><![CDATA[WordPress 2.6]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://wpchina.org/what-plugin-coders-must-know-about-wordpress-26-270/</guid>
		<description><![CDATA[<p>Wordpress 的安装是集成的文件包，但是有两个特殊的情况，即 wp-config.php 配置文件和 wp-content 文件包，这两个不会在博客升级的过程中被覆盖。在 WordPress 2.6 时代，他们的位置将由用户个人决定，甚至可能移出 WordPress 的根目录之外。这将是对（插件开发者的）编码习惯的一个巨大挑战。</p>]]></description>
			<content:encoded><![CDATA[<p>WordPress 的安装是集成的文件包，但是有两个特殊的情况，即 wp-config.php 配置文件和 wp-content 文件包，这两个不会在博客升级的过程中被覆盖。在 WordPress 2.6 时代，他们的位置将由用户个人决定，甚至可能移出 WordPress 的根目录之外。这将是对（插件开发者的）编码习惯的一个巨大挑战。</p>
<p>插件开发者可能会需要脚本程序来猜测它们的位置（比如 require() 文件），或者包含 wp-config.php 文件来生成一个 WordPress化的环境。</p>
<h3>猜测 wp-content 的路径</h3>
<p>WordPress 2.6 允许高级用户通过常量指定 wp-content 的位置（物理位置和网址），因此这个目录你可以随意放置。</p>
<p>过去通常是这样：</p>
<p> <coolcode lang="php">$plugin_path = ABSPATH . &#8216;/wp-content/plugins/&#8217; . plugin_basename(dirname(__FILE__));<br />
$plugin_url = get_option(&#8216;siteurl&#8217;) . &#8216;/wp-content/plugins/&#8217; . plugin_basename(dirname(__FILE__));</coolcode>
<p>现在你必须这样，这个目录可能会被藏到任何地方：</p>
<p> <coolcode lang="php">// Pre-2.6 compatibility<br />
if ( !defined(&#8216;WP_CONTENT_URL&#8217;) )<br />
	define( &#8216;WP_CONTENT_URL&#8217;, get_option(&#8216;siteurl&#8217;) . &#8216;/wp-content&#8217;);<br />
if ( !defined(&#8216;WP_CONTENT_DIR&#8217;) )<br />
	define( &#8216;WP_CONTENT_DIR&#8217;, ABSPATH . &#8216;wp-content&#8217; );<br />
// Guess the location<br />
$plugin_path = WP_CONTENT_DIR.&#8217;/plugins/&#8217;.plugin_basename(dirname(__FILE__));<br />
$plugin_url = WP_CONTENT_URL.&#8217;/plugins/&#8217;.plugin_basename(dirname(__FILE__));</coolcode>
<p>在 WordPress 2.6 中，常量 WP_CONTENT_DIR 和 WP_CONTENT_URL 可由用户指定，或者在 wp-settings.php 中设置。</p>
<h3>包含 wp-config.php 文件</h3>
<p>在 WordPress 2.6 中，你可以将 wp-config.php 文件放到博客的根目录，也可以将它移动到上级目录（这意味着将此文件移出站长文档根目录）</p>
<p>过去通常是这样：</p>
<p><coolcode lang="php">require_once(&#8216;../../../wp-config.php&#8217;); </coolcode>
<p>现在必须这样：</p>
<p><coolcode lang="php">$root = dirname(dirname(dirname(dirname(__FILE__))));<br />
if (file_exists($root.&#8217;/wp-load.php&#8217;)) {<br />
	// WP 2.6<br />
	require_once($root.&#8217;/wp-load.php&#8217;);<br />
} else {<br />
	// Before 2.6<br />
	require_once($root.&#8217;/wp-config.php&#8217;);<br />
} </coolcode>
<p>在 WordPress 2.6 中，基本上由 wp-load.php 代替了原来的 wp-config.php 文件，负责载入整个 WordPress 环境。</p>
<p>然而，如 GamerZ 在评论中所指出的，这可能还无法工作。为什么呢？因为不仅配置文件可能出现在任何地方，由于 wp-content 目录也可能被移动，因此相对路径也会变化。</p>
<p>从这一点上说，我没有想到办法可以可以同时猜出 wp-config.php 文件和 wp-content 目录的办法。要想 100% 简化，需要一个可编辑的“独立”的文件包含 wp-config 文件，这样高级用户移动 wp-content 目录的时候，可以手动编辑路径（如果前面例子中的 $root 变量）。</p>
<p>原文：<a href="http://planetozh.com/blog/2008/07/what-plugin-coders-must-know-about-wordpress-26/" target="_blank">What Plugin Coders Must Know About WordPress 2.6</a></p>
<p>中文：<a href="http://wpchina.org/what-plugin-coders-must-know-about-wordpress-26-270/" target="_blank">插件开发者必须了解的 WordPress 2.6</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wpchina.org/what-plugin-coders-must-know-about-wordpress-26-270/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>WordPress 插件的错误管理</title>
		<link>http://wpchina.org/httpweblogtoolscollectioncomarchives20080504error-management-for-wordpress-plugins-260/</link>
		<comments>http://wpchina.org/httpweblogtoolscollectioncomarchives20080504error-management-for-wordpress-plugins-260/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 01:10:40 +0000</pubDate>
		<dc:creator>Jiang</dc:creator>
				<category><![CDATA[中文翻译]]></category>
		<category><![CDATA[代码研究]]></category>
		<category><![CDATA[插件开发]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://wpchina.org/httpweblogtoolscollectioncomarchives20080504error-management-for-wordpress-plugins-260/</guid>
		<description><![CDATA[<p>过去一周，我一直在开发一个 WordPress 插件。我的一个目标是想要具有特色且内容相关的错误信息。</p>  <p>我打算写完我的错误管理器，甚至已经有了一个基本的版本。我不断地跨越障碍，最后我问自己，“WordPress 会不会已经有自己的错误管理器了吗？”</p> ]]></description>
			<content:encoded><![CDATA[<p>过去一周，我一直在开发一个 WordPress 插件。我的一个目标是想要具有特色且内容相关的错误信息。</p>
<p>我打算写完我的错误管理器，甚至已经有了一个基本的版本。我不断地跨越障碍，最后我问自己，“WordPress 会不会已经有自己的错误管理器了吗？”</p>
<p>因此，我迅速搜索代码，并找到了 <a href="http://codex.wordpress.org/Function_Reference/WP_Error" target="_blank">WP_Error class</a> 。</p>
<p>我所遇到的一个障碍就是，错误管理器无法将错误信息本地化。而 WP_error 则轻松地解决了这个问题。</p>
<h3>添加错误信息</h3>
<p>要添加错误信息，你所必须要做的第一件事情就是创建自己的 WP_error 实例。</p>
<p>  <coolcode lang="php">$myErrors = new WP_Error();</coolcode>
<p>下一步要做的就是添加错误信息。</p>
<p> <coolcode lang="php">$myErrors->add(&#8216;access_denied&#8217;, __(&#8216;You do not have permission to do that.&#8217;,$myLocalizationName));</coolcode>
<p>这里有些问题要注意。<strong>error code （错误代码）</strong>可以用来查询完整的错误信息，并且可以用 <a href="http://codex.wordpress.org/Localizing_WordPress#Localization_Technology" target="_blank">__ function</a> 来进行错误信息的本地化。</p>
<h3>检索错误信息</h3>
<p>在你添加了错误信息之后，你就想要通过某个点来进行检索。</p>
<p>检索错误信息很简单，只需调用 <strong>get_error_message</strong> 函数，并将错误代码（即 error code）传递给他即可。</p>
<p>  <coolcode lang="php">$errorMessage = $myErrors->get_error_message($code);<br />
</coolcode>
<p>从那里将会输出错误信息给你。</p>
<h3>应用</h3>
<p>使用 WP_Error 类的办法可用于 WordPress 主题和插件。</p>
<p>对于插件，你的错误信息最好是作为类的一个成员（<a href="http://www.wp-fun.co.uk/2008/01/20/using-objects-with-wordpress-plugins-p-3/" target="_blank">a memerb of a class</a>）。使用类的办法可以确保获取全部错误信息，且避免命名冲突。</p>
<p>对于主题，你可以创建一个自己的雷，或者可以使用加了前缀的变量，尽量避免和其他变量冲突。</p>
<h3>下载和代码实例</h3>
<p>这里有一些<a href="http://weblogtoolscollection.com/b2-img/2008/05/functionsphp.zip" target="_blank">可以下载的代码</a>，以及一些关于这个类如何在主题里使用的例子。如前所述，插肩作者可能会<a href="http://www.wp-fun.co.uk/2008/01/20/using-objects-with-wordpress-plugins-p-3" target="_blank">需要使用这个类</a>。</p>
<p>这个代码假设放到主题里的“functions.php”文件内。</p>
<p>  <coolcode lang="php">class my_class {<br />
	function my_class() {<br />
		$this->localizionName = &#8221;;<br />
		$this->errors = new WP_Error();<br />
		$this->initialize_errors();<br />
	}<br />
	/* get_error &#8211; Returns an error message based on the passed code<br />
	Parameters &#8211; $code (the error code as a string)<br />
	Returns an error message */<br />
	function get_error($code = &#8221;) {<br />
		$errorMessage = $this->errors->get_error_message($code);<br />
		if ($errorMessage == null) {<br />
			return __(&#8220;Unknown error.&#8221;, $this->localizionName);<br />
		}<br />
		return $errorMessage;<br />
	}<br />
	/* Initializes all the error messages */<br />
	function initialize_errors() {<br />
		$this->errors->add(&#8216;my_weird_error&#8217;, __(&#8216;Some weird error has occurred&#8217;, $myLocalizationName));<br />
		$this->errors->add(&#8216;access_denied&#8217;, __(&#8216;You do not have permission to do that.&#8217;,$myLocalizationName));<br />
	} //end function initialize_errors<br />
}<br />
$myErrors = new my_class();<br />
echo $myErrors->get_error(&#8216;my_weird_error&#8217;);<br />
</coolcode>
<p>上面的代码有两个辅助函数，一个是用于检索错误，另一个用于初始化错误。例子都是基本，但是可以告诉你如何使用 <strong>WP_Error</strong> 类。</p>
<h3>结论</h3>
<p>WP_Error 类有很多功能这里没有提到，但是如果你愿意，你可以仔细研究这些代码。这个类包含在 wp-includes 文件夹内的 classes.php 文件内。</p>
<p>WP_Error 是个很简单，也很强大的存储错误的办法，输出错误信息也很容易。并且最棒的是，错误信息还可以本地化。</p>
<p>原文：<a href="http://weblogtoolscollection.com/archives/2008/05/04/error-management-for-wordpress-plugins/" target="_blank">Error Management for WordPress Plugins</a></p>
<p>中文：<a href="http://wpchina.org/httpweblogtoolscollectioncomarchives20080504error-management-for-wordpress-plugins-260/" target="_blank">WordPress 插件的错误管理</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wpchina.org/httpweblogtoolscollectioncomarchives20080504error-management-for-wordpress-plugins-260/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>WordPress插件DIY &#8211; 来自偶爱偶家插件教程</title>
		<link>http://wpchina.org/wordpress-plugins-tutorial-from-2i2j-blog-88/</link>
		<comments>http://wpchina.org/wordpress-plugins-tutorial-from-2i2j-blog-88/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 16:20:41 +0000</pubDate>
		<dc:creator>Jiang</dc:creator>
				<category><![CDATA[WordPress 插件]]></category>
		<category><![CDATA[插件开发]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://wordpresschina.org/wordpress-plugins-tutorial-from-2i2j-blog-88/</guid>
		<description><![CDATA[<p><a href="http://blog.2i2j.com/" target="_blank">偶爱偶家</a>的作者枫叶是一个<a href="http://wordpresschina.org/category/wordpress-plugins/" target="_blank">WordPress插件</a>制作高手，本站之前曾经介绍过<a href="http://wordpresschina.org/wordpress-plugins-from-2i2j-blog-61/" target="_blank">他开发的几个WordPress插件</a>。除了开发这些插件，枫叶还将他的插件开发经验写成了教程，来帮助更多的网友。</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.2i2j.com/" target="_blank">偶爱偶家</a>的作者枫叶是一个<a href="http://wpchina.org/category/wordpress-plugins/" target="_blank">WordPress插件</a>制作高手，本站之前曾经介绍过<a href="http://wpchina.org/wordpress-plugins-from-2i2j-blog-61/" target="_blank">他开发的几个WordPress插件</a>。除了开发这些插件，枫叶还将他的插件开发经验写成了教程，来帮助更多的网友。</p>
<ul>
<li><a href="http://blog.2i2j.com/being-humble-opinion/write-plugins-by-yourself-in-some-policy.html" target="_blank">WordPress插件DIY：几个原则</a>
<li><a href="http://blog.2i2j.com/being-humble-opinion/write-plugins-by-yourself-in-add-api-to-easy-use-plugins.html" target="_blank">WordPress插件DIY：使用API提高插件易用性</a>
<li><a href="http://blog.2i2j.com/being-humble-opinion/write-plugins-by-yourself-in-add-api-to-easy-use-plugins-continue.html" target="_blank">WordPress插件DIY：使用API提高插件易用性</a>(续)
<li><a href="http://blog.2i2j.com/being-humble-opinion/write-plugins-by-yourself-in-add-javascript-to-easy-use-plugins.html" target="_blank">WordPress插件DIY：使用Javascript提高插件易用性</a>
<li><a href="http://blog.2i2j.com/being-humble-opinion/write-plugins-by-yourself-in-add-wp-file-to-easy-use-plugins.html" target="_blank">WordPress插件DIY：利用wp的编程规律提高插件易用性</a>
<li><a href="http://blog.2i2j.com/being-humble-opinion/write-plugins-by-yourself-in-add-php-skill-file-to-easy-use-plugins.html" target="_blank">WordPress插件DIY：巧用php技巧提高插件易用性</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://wpchina.org/wordpress-plugins-tutorial-from-2i2j-blog-88/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

Served from: wpchina.org @ 2012-02-12 02:12:20 -->
