<?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>Epile · 奇雅 &#187; Wordpress</title>
	<atom:link href="http://epile.org/blog/html/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://epile.org/blog</link>
	<description>混迹于互联网的传媒人士，喜欢折腾各种解决方案。</description>
	<lastBuildDate>Mon, 07 Jun 2010 02:59:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>WordPress新主题《新绿 E-Green》上线</title>
		<link>http://epile.org/blog/html/wordpress-theme-e-green.html</link>
		<comments>http://epile.org/blog/html/wordpress-theme-e-green.html#comments</comments>
		<pubDate>Sat, 13 Mar 2010 15:06:44 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[我的作品]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://epile.org/blog/?p=1247</guid>
		<description><![CDATA[在我使用了两年半Wordpress之后，就在今晚，我终于发布了自己设计的主题。此时此刻，Epile非常地激动。 我把主题命名为“新绿 E-Green”，象征着我步入社会工作的新，而绿则是Epile博客一贯的配色，象征着生机蓬勃。 这个主题做得有点匆忙，从前天晚上开始动手用Fireworks制作设计稿，昨天定下稿，而代码则是今天下午和晚上写完的。当然，这款主题还存在着很多不足的地方，比如效果图右上角的搜索框我还没有搞定浏览器兼容性，评论的样式还不太好看，Sidebar其实还是静态化的。 感谢在主题设计上给予我鼓励的 @czshens @Jutoy @Sogood 童鞋。 Update List 2010年3月13日 新绿E-Green v0.1上线 您可能还对以下内容感兴趣Wordpress 2.8 冲突插件WordPress2.8自定义分类Wordpress CMS插件 PodsWordpress2.8 body_class()函数5个你不知道的Wordpress函数]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1248" title="新绿 E-Green" src="http://img.epile.org/e/2010/03/egreen.jpg" alt="" width="580" height="349" /></p>
<p style="text-align: left;">在我使用了两年半Wordpress之后，就在今晚，我终于发布了自己设计的主题。此时此刻，Epile非常地激动。</p>
<p style="text-align: left;">我把主题命名为“新绿 E-Green”，象征着我步入社会工作的新，而绿则是Epile博客一贯的配色，象征着生机蓬勃。</p>
<p>这个主题做得有点匆忙，从前天晚上开始动手用Fireworks制作设计稿，昨天定下稿，而代码则是今天下午和晚上写完的。当然，这款主题还存在着很多不足的地方，比如效果图右上角的搜索框我还没有搞定浏览器兼容性，评论的样式还不太好看，Sidebar其实还是静态化的。</p>
<p>感谢在主题设计上给予我鼓励的 <a href="http://shens.9yu.org/">@czshens</a> <a href="http://www.jutoy.net/">@Jutoy</a> <a href="http://www.jiapad.com/blog/">@Sogood</a> 童鞋。</p>
<h3>Update List</h3>
<ul>
<li>2010年3月13日 新绿E-Green v0.1上线</li>
</ul>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-2-8-plugin-bug.html" title="Wordpress 2.8 冲突插件">Wordpress 2.8 冲突插件</a></li><li><a href="http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html" title="WordPress2.8自定义分类">WordPress2.8自定义分类</a></li><li><a href="http://epile.org/blog/html/wordpress-cms-plugins-pods.html" title="Wordpress CMS插件 Pods">Wordpress CMS插件 Pods</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html" title="Wordpress2.8 body_class()函数">Wordpress2.8 body_class()函数</a></li><li><a href="http://epile.org/blog/html/5-useful-wordpress-functions.html" title="5个你不知道的Wordpress函数">5个你不知道的Wordpress函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/wordpress-theme-e-green.html/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>WordPress 2.8 冲突插件</title>
		<link>http://epile.org/blog/html/wordpress-2-8-plugin-bug.html</link>
		<comments>http://epile.org/blog/html/wordpress-2-8-plugin-bug.html#comments</comments>
		<pubDate>Sun, 14 Jun 2009 03:47:43 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[网络技术]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://epile.cn/blog/?p=883</guid>
		<description><![CDATA[本文章不再更新，目前有两个网站给出了详细的冲突插件列表： codex.wordpress.org    http://codex.wordpress.org/Plugins/Plugin_Compatibility/2.8 BraveNewCode    http://plugincheck.bravenewcode.com/ 1.DB Cache（版本0.6或以下） 数据库缓存插件，在 WordPress 2.8 中开启此插件，则文章无法添加Tag。也有人说在编辑页面时显示错误提示 via。 2.FCKeditor（版本2.5.0） 文字编辑插件，在 WordPress 2.8 中开启此插件，无法使用。 3.use google libraries（版本1.05或以下，1.06已修复） 分布式加速插件，在 WordPress 2.8 中开启此插件，编辑文章时无法在html编辑器与可视化编辑器之间切换，且可能造成文章内容部分丢失。 原因：其调用的JS与Wordpress2.8的loadscripts.php冲突。 4.WP-PostRatings（版本1.40或以下，1.50已修复） 文章评分插件，在 WordPress 2.8 中开启此插件后公告栏显示数据库Ratings第一行出错。 5.Redirection（版本2.1.14或以下） 重定向插件，在 WordPress 2.8 中开启此插件后文章无法添加Tag。 via 您可能还对以下内容感兴趣Wordpress新主题《新绿 E-Green》上线WordPress2.8自定义分类Wordpress CMS插件 PodsWordpress2.8 body_class()函数5个你不知道的Wordpress函数]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;">本文章不再更新，目前有两个网站给出了详细的冲突插件列表：</span></p>
<p>codex.wordpress.org    <a href="http://codex.wordpress.org/Plugins/Plugin_Compatibility/2.8">http://codex.wordpress.org/Plugins/Plugin_Compatibility/2.8</a></p>
<p>BraveNewCode    <a href="http://plugincheck.bravenewcode.com/">http://plugincheck.bravenewcode.com/</a></p>
<p><span id="more-883"></span></p>
<p>1.<strong>DB Cache</strong>（版本0.6或以下）</p>
<p>数据库缓存插件，在 WordPress 2.8 中开启此插件，则文章无法添加Tag。也有人说在编辑页面时显示错误提示 <a rel="external nofollow" href="http://www.suoyishuo.com/archives/wordpress-28-conflict.html" target="_blank">via</a>。</p>
<p>2.<strong>FCKeditor</strong>（版本2.5.0）</p>
<p>文字编辑插件，在 WordPress 2.8 中开启此插件，无法使用。</p>
<p>3.<strong>use google libraries</strong>（版本1.05或以下，<span style="color: #ff0000;"><strong>1.06已修复</strong></span>）</p>
<p>分布式加速插件，在 WordPress 2.8 中开启此插件，编辑文章时无法在html编辑器与可视化编辑器之间切换，且可能造成文章内容部分丢失。</p>
<p>原因：其调用的JS与Wordpress2.8的loadscripts.php冲突。</p>
<p>4.<strong>WP-PostRatings</strong>（版本1.40或以下，<span style="color: #ff0000;"><strong>1.50已修复</strong></span>）</p>
<p>文章评分插件，在 WordPress 2.8 中开启此插件后公告栏显示数据库Ratings第一行出错。</p>
<p>5.<strong>Redirection</strong>（版本2.1.14或以下）</p>
<p>重定向插件，在 WordPress 2.8 中开启此插件后文章无法添加Tag。 <a rel="external nofollow" href="http://showfom.com/notes-for-wordpress-28-upgrading/">via</a></p>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-theme-e-green.html" title="Wordpress新主题《新绿 E-Green》上线">Wordpress新主题《新绿 E-Green》上线</a></li><li><a href="http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html" title="WordPress2.8自定义分类">WordPress2.8自定义分类</a></li><li><a href="http://epile.org/blog/html/wordpress-cms-plugins-pods.html" title="Wordpress CMS插件 Pods">Wordpress CMS插件 Pods</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html" title="Wordpress2.8 body_class()函数">Wordpress2.8 body_class()函数</a></li><li><a href="http://epile.org/blog/html/5-useful-wordpress-functions.html" title="5个你不知道的Wordpress函数">5个你不知道的Wordpress函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/wordpress-2-8-plugin-bug.html/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>WordPress2.8自定义分类</title>
		<link>http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html</link>
		<comments>http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html#comments</comments>
		<pubDate>Fri, 12 Jun 2009 12:24:27 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[网络技术]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://epile.cn/blog/?p=869</guid>
		<description><![CDATA[原文：Custom taxonomies in WordPress 2.8 翻译：Epile 首发于译言 想象您经营一个关于图书、电影、音乐评论的网站。当你在WordPress写文章时，您需要把它标记为一本书，同时你也想进一步标记它的类型或作者。 通常我们会通过使用类别和标签进行系统分类。现在我要告诉您如何摆脱这种硬性的分类系统并按自己喜欢的方式。 在WordPress2.3 ，Taxonomy API 被引入。它允许我们构建自己的分类。这里有一个问题：没有人使用自定义分类。 在WordPress2.8 ，创建自定义分类不再是插件开发者的事情了。普通用户可以通过几行代码建立和使用它们需要的任何分类。WordPress会帮我们完成剩下的工作：在文章撰写页面添加自定义输入框，在管理界面加入新的页面以便管理自定义分类。 什么是分类？ 我知道这个词可能对于大多数来说并不熟悉。总之，分类是一种组织项目的方式。这是Answers.com给出的分类的定义 ： 生物分类显示有序的自然关系。 科学，法律，或原则的分类；分类学。 划分为有序的群体或类别。 第三个定义或许是最适合我们的目的。 默认情况下， WordPress预装了三个分类： category ， post_tag ，link_category。前两个允许我们能够以某种方式标记我们的文章。最后一个允许我们给链接进行分类。我将在本教程告诉您如何轻松地创建并自己的分类。 每个分类有所谓的关系。例如，您的所有tag标签其实都是在post_tag分类下的。 本文讲的分类指的是针对文章Tag的分类。 新分类的特性 在您建立了新的分类，WordPress将会自动为您创建的管理面板。在你写文章得时候会有一个新的自定义输入框。这是使WordPress2.8很酷的新特性。本教程我们将建立三个分类：人物，地点和动物。 在你写新文章时你将看到如下的画面： 下面是People分类的管理界面： 你们当中有些人可能已经注意到在网页上不少地方出现“Tag标记”。我不知道这是否会在未来更新或者它可以很容易地改变。 如何创建一个自定义分类 这里我只是照顾普通水平的用户。插件开发人员可以借此做各种巧妙的事情。此外，WordPress2.8的新特性只适用于文章中像Tag一样的分类（非等级）。 在这个例子中，我们将创造三个自定义分类：人物，地点和动物。您可以创建更多或只要你想要的。 打开主题的functions.php文件或创建一个插件文件。添加以下代码： &#60;?php add_action( &#8216;init&#8217;, &#8216;create_my_taxonomies&#8217;, 0 ); &#60;?php add_action( &#8216;init&#8217;, &#8216;create_my_taxonomies&#8217;, 0 ); function create_my_taxonomies() { register_taxonomy( [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><span style="color: #242626; font-family: Consolas; line-height: 20px; font-size: 12px;">原文：<a rel="external nofollow" href="http://justintadlock.com/archives/2009/05/06/custom-taxonomies-in-wordpress-28" target="_blank">Custom taxonomies in WordPress 2.8</a><br />
翻译：<a style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; text-decoration: none; color: #004d99; padding: 0px; margin: 0px; border: 0px initial initial;" rel="external nofollow" href="http://epile.org/blog/" target="_blank">Epile</a><br />
首发于译言</span></p></blockquote>
<p>想象您经营一个关于图书、电影、音乐评论的网站。当你在WordPress写文章时，您需要把它标记为一本书，同时你也想进一步标记它的类型或作者。</p>
<p>通常我们会通过使用类别和标签进行系统分类。现在我要告诉您如何摆脱这种硬性的分类系统并按自己喜欢的方式。</p>
<p>在WordPress2.3 ，Taxonomy API 被引入。它允许我们构建自己的分类。这里有一个问题：没有人使用自定义分类。</p>
<p>在WordPress2.8 ，创建自定义分类不再是插件开发者的事情了。普通用户可以通过几行代码建立和使用它们需要的任何分类。WordPress会帮我们完成剩下的工作：在文章撰写页面添加自定义输入框，在管理界面加入新的页面以便管理自定义分类。</p>
<p><span id="more-869"></span></p>
<h3>什么是分类？</h3>
<p>我知道这个词可能对于大多数来说并不熟悉。总之，分类是一种组织项目的方式。这是Answers.com给出的分类的定义 ：</p>
<p>生物分类显示有序的自然关系。<br />
科学，法律，或原则的分类；分类学。<br />
划分为有序的群体或类别。<br />
第三个定义或许是最适合我们的目的。</p>
<p>默认情况下， WordPress预装了三个分类： category ， post_tag ，link_category。前两个允许我们能够以某种方式标记我们的文章。最后一个允许我们给链接进行分类。我将在本教程告诉您如何轻松地创建并自己的分类。</p>
<p>每个分类有所谓的关系。例如，您的所有tag标签其实都是在post_tag分类下的。</p>
<p><span style="font-family: Verdana; line-height: 23px; color: #333333;">本文讲的分类指的是针对文章Tag的分类。</span></p>
<h3>新分类的特性</h3>
<p>在您建立了新的分类，WordPress将会自动为您创建的管理面板。在你写文章得时候会有一个新的自定义输入框。这是使WordPress2.8很酷的新特性。本教程我们将建立三个分类：人物，地点和动物。</p>
<p>在你写新文章时你将看到如下的画面：</p>
<p><img class="aligncenter size-medium wp-image-870" title="taxonomies-write-post" src="http://img.epile.org/e/2009/06/taxonomies-write-post-580x379.png" alt="taxonomies-write-post" width="580" height="379" /></p>
<p>下面是People分类的管理界面：</p>
<p><img class="aligncenter size-medium wp-image-871" title="edit-taxonomy" src="http://img.epile.org/e/2009/06/edit-taxonomy-580x289.png" alt="edit-taxonomy" width="580" height="289" /></p>
<p>你们当中有些人可能已经注意到在网页上不少地方出现“Tag标记”。我不知道这是否会在未来更新或者它可以很容易地改变。</p>
<h3>如何创建一个自定义分类</h3>
<p>这里我只是照顾普通水平的用户。插件开发人员可以借此做各种巧妙的事情。此外，WordPress2.8的新特性只适用于文章中像Tag一样的分类（非等级）。</p>
<p>在这个例子中，我们将创造三个自定义分类：人物，地点和动物。您可以创建更多或只要你想要的。</p>
<p>打开主题的functions.php文件或创建一个插件文件。添加以下代码：</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 600px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;?php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 600px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">add_action( &#8216;init&#8217;, &#8216;create_my_taxonomies&#8217;, 0 );</div>
<blockquote><p><span style="font-family: Verdana; line-height: 23px; color: #333333;"> </span></p>
<div style="font-family: Verdana, arial, sans-serif; padding: 0px; margin: 0px;">&lt;?php</div>
<div style="font-family: Verdana, arial, sans-serif; padding: 0px; margin: 0px;">add_action( &#8216;init&#8217;, &#8216;create_my_taxonomies&#8217;, 0 );</div>
<div style="font-family: Verdana, arial, sans-serif; padding: 0px; margin: 0px;">function create_my_taxonomies() {</div>
<div style="font-family: Verdana, arial, sans-serif; padding: 0px; margin: 0px;"><span style="font-family: Verdana, arial, sans-serif; padding: 0px; margin: 0px;"> </span>register_taxonomy( &#8216;people&#8217;, &#8216;post&#8217;, array( &#8216;hierarchical&#8217; =&gt; false, &#8216;label&#8217; =&gt; &#8216;People&#8217;, &#8216;query_var&#8217; =&gt; true, &#8216;rewrite&#8217; =&gt; true ) );</div>
<div style="font-family: Verdana, arial, sans-serif; padding: 0px; margin: 0px;"><span style="font-family: Verdana, arial, sans-serif; padding: 0px; margin: 0px;"> </span>register_taxonomy( &#8216;places&#8217;, &#8216;post&#8217;, array( &#8216;hierarchical&#8217; =&gt; false, &#8216;label&#8217; =&gt; &#8216;Places&#8217;, &#8216;query_var&#8217; =&gt; true, &#8216;rewrite&#8217; =&gt; true ) );</div>
<div style="font-family: Verdana, arial, sans-serif; padding: 0px; margin: 0px;">register_taxonomy( &#8216;animals&#8217;, &#8216;post&#8217;, array( &#8216;hierarchical&#8217; =&gt; false, &#8216;label&#8217; =&gt; &#8216;Animals&#8217;, &#8216;query_var&#8217; =&gt; true, &#8216;rewrite&#8217; =&gt; true ) );</div>
<div style="font-family: Verdana, arial, sans-serif; padding: 0px; margin: 0px;">}</div>
<div style="font-family: Verdana, arial, sans-serif; padding: 0px; margin: 0px;">?&gt;</div>
</blockquote>
<h3>分解代码</h3>
<p>让我们来看看一行代码，我们开始分解它的每个部分。我们注册登记的人物分类是这样子的：</p>
<ul>
<li>register_taxonomy( &#8216;people&#8217;, &#8216;post&#8217;, array( &#8216;hierarchical&#8217; =&gt; false, &#8216;label&#8217; =&gt; &#8216;People&#8217;, &#8216;query_var&#8217; =&gt; true, &#8216;rewrite&#8217; =&gt; true ) );</li>
<li>people告诉WordPress分类的名称。</li>
<li>post告诉WordPres分类的适应对象。如果您希望您也可以作出页面的分类或链接的分类，但是在Wordpress还没有像文章分类这么简单。</li>
<li>hierarchical意味着分类可以可以在一个等级内（Category类别是等级，而Tag标签不是）。所以，我们设置此为false使行为像标签并使用新的WordPress的特性。</li>
<li>label的名字是您要在Wordpress管理面板显示的分类名字。</li>
<li>query_var让WordPress的知道你是否希望能够显示像人物分类下所有关于威尔史密斯的文章。如果您将其设置为true ，查询变量将是你的分类名称。这也可以是任何你想要的文本字符串。我们将继续简单的标记为Ture。</li>
<li>rewrite是你是否需要Wordpress为分类或存档更漂亮的永久性链接。所以，您可以拥有yoursite.com/people/will-smith ，而不是yoursite.com/?people=will-smith。</li>
</ul>
<p>接着，我给你一些实际使用的例子。</p>
<h3>如何使用自定义分类创建标签云</h3>
<p>比方说，您想要一个人物分类云 ，而不是一个Tag标签云。好吧，我们会利用我们的标准wp_tag_cloud （ ）模板标记加上一些额外的代码。将此代码放置在您想展示人物分类云的地方：</p>
<blockquote><p>&lt;?php wp_tag_cloud( array( &#8216;taxonomy&#8217; =&gt; &#8216;people&#8217;, &#8216;number&#8217; =&gt; 45 ) ); ?&gt;</p></blockquote>
<p>它就是这么简单。所有您需要做的是选择您的分类taxonomy。</p>
<h3>如何为每个文章列出分类的层级</h3>
<p>或许您要查看某一特定分类的层级以及您的文章，它们有共同的类别和标签。在这个例子中，我们将展示的人物分类的层级。在Loop循环中您想要出现分类层级的地方插入：</p>
<blockquote><p>&lt;?php echo get_the_term_list( $post-&gt;ID, &#8216;people&#8217;, &#8216;People: &#8216;, &#8216;, &#8216;, &#8221; ); ?&gt;</p></blockquote>
<h3>如何显示特定分类下的文章</h3>
<p>让我们假设你想创建一个自定义页面模板或设置您的首页显示10个与“威尔史密斯”的文章 （从您的人物分类） 。在Loop循环之前添加此代码：</p>
<blockquote><p>&lt;?php query_posts( array( &#8216;people&#8217; =&gt; &#8216;will-smith&#8217;, &#8216;showposts&#8217; =&gt; 10 ) ); ?&gt;</p></blockquote>
<h3>创建自己的自定义分类</h3>
<p>分类不再是插件开发者才可以创建的事情了。现在是你自己探索自定义分类的时间了。为你的网站创建一些独特的东西吧。</p>
<p>我想在博客上创建一个WordPress分类，因为我博客上的文章几乎都是关于Wordpress的。</p>
<p>如果您有任何疑问或想看到更多的实际使用范例，请随时评论。你甚至可以列出关于新的分类法的一大张想法清单。有很多我们可以做的事情，但是出现无法在一个教程中。如果每个人都觉得需要它，我们可以再写一个。</p>
<p>请记住，本教程只支持WordPress2.8。</p>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-theme-e-green.html" title="Wordpress新主题《新绿 E-Green》上线">Wordpress新主题《新绿 E-Green》上线</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-plugin-bug.html" title="Wordpress 2.8 冲突插件">Wordpress 2.8 冲突插件</a></li><li><a href="http://epile.org/blog/html/wordpress-cms-plugins-pods.html" title="Wordpress CMS插件 Pods">Wordpress CMS插件 Pods</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html" title="Wordpress2.8 body_class()函数">Wordpress2.8 body_class()函数</a></li><li><a href="http://epile.org/blog/html/5-useful-wordpress-functions.html" title="5个你不知道的Wordpress函数">5个你不知道的Wordpress函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>WordPress CMS插件 Pods</title>
		<link>http://epile.org/blog/html/wordpress-cms-plugins-pods.html</link>
		<comments>http://epile.org/blog/html/wordpress-cms-plugins-pods.html#comments</comments>
		<pubDate>Thu, 11 Jun 2009 09:27:56 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[网络技术]]></category>
		<category><![CDATA[Pods]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://epile.cn/blog/?p=839</guid>
		<description><![CDATA[Update：#2009.07.21 修改“特性”介绍，与官方内容同步； Epile一周前发现了这款Wordpress的CMS插件Pods，功能很强大，因为英语水平的问题，一直不太了解这个插件具体是怎么样的，所以拖到现在才把这篇介绍写好。月底Pods官方新版本将会带有由Epile翻译的中文语言包，接下来Epile会发布Pods相关的中文教程。 Pods允许您可以使用Wordpress创建，管理和显示自定义内容类型。像Drupal的CCK，这些内容类型之间可以相互关联，并允许网站使用大量的相互关联。Pods CMS 插件提供了自动分页，过滤，公开的表格，访问控制，菜单编辑以及更多的功能。 特性 内容类型（Content Types） 创建输入区域容器，可供选择的输入类型（文字，日期，数字，关联等） ，甚至可以设置验证规则（必填、唯一、多选） 关联（Relationships） 一个内容类型（Pod）的列可以关联另一个Pod的项目。 展示（Display） 使用轻量级模板系统在网站上展示数据。只需要很少的设置就可以实现自动分页，搜索，公开表单，下拉式过滤器等。 辅助工具（Helps） 以任何方式操作数据！有4个不同的辅助工具，每一个实现一个独立的功能（验证数据，自定义表单字段等） Pod页（Pods Pages） 支持通配符URL的PHP页面 ，使用单个Pod页即可可以处理多个项目！ 角色权限（Roles） 什么角色可以访问哪个Pods功能？ 菜单（Menus） 建立一个可用于本地导航，页面结构的菜单结构。 配置管理（Package Manager） 导入或导出Pods设置以便重复利用。 本文使用Google Translate Toolkit翻译。 您可能还对以下内容感兴趣Wordpress新主题《新绿 E-Green》上线Wordpress 2.8 冲突插件WordPress2.8自定义分类Wordpress2.8 body_class()函数5个你不知道的Wordpress函数]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-866" title="pods" src="http://img.epile.org/e/2009/06/pods.png" alt="pods" width="478" height="236" /></p>
<p><span style="color: #ff0000;">Update：#2009.07.21 修改“特性”介绍，与官方内容同步；</span></p>
<p><a href="http://epile.org/blog/"><span style="text-decoration: line-through;">Epile</span></a><span style="text-decoration: line-through;">一周前发现了这款Wordpress的CMS插件</span><a rel="external nofollow" href="http://pods.uproot.us/" target="_blank"><span style="text-decoration: line-through;">Pods</span></a><span style="text-decoration: line-through;">，功能很强大，因为英语水平的问题，一直不太了解这个插件具体是怎么样的，所以拖到现在才把这篇介绍写好。月底Pods官方新版本将会带有由Epile翻译的中文语言包，接下来Epile会发布Pods相关的中文教程。</span></p>
<p>Pods允许您可以使用Wordpress创建，管理和显示自定义内容类型。像Drupal的CCK，这些内容类型之间可以相互关联，并允许网站使用大量的相互关联。Pods CMS 插件提供了自动分页，过滤，公开的表格，访问控制，菜单编辑以及更多的功能。</p>
<p><span id="more-839"></span></p>
<h3>特性</h3>
<p><strong>内容类型（Content Types）</strong><br />
创建输入区域容器，可供选择的输入类型（文字，日期，数字，关联等） ，甚至可以设置验证规则（必填、唯一、多选）</p>
<p><strong>关联（Relationships）</strong><br />
一个内容类型（Pod）的列可以关联另一个Pod的项目。</p>
<p><strong>展示（Display）</strong><br />
使用轻量级模板系统在网站上展示数据。只需要很少的设置就可以实现自动分页，搜索，公开表单，下拉式过滤器等。</p>
<p><strong>辅助工具（Helps）</strong><br />
以任何方式操作数据！有4个不同的辅助工具，每一个实现一个独立的功能（验证数据，自定义表单字段等）</p>
<p><strong>Pod页（Pods Pages）</strong><br />
支持通配符URL的PHP页面 ，使用单个Pod页即可可以处理多个项目！</p>
<p><strong>角色权限（Roles）</strong><br />
什么角色可以访问哪个Pods功能？</p>
<p><strong>菜单（Menus）</strong><br />
建立一个可用于本地导航，页面结构的菜单结构。</p>
<p><strong>配置管理（Package Manager）</strong><br />
导入或导出Pods设置以便重复利用。</p>
<p>本文使用<a rel="external nofollow" href="http://translate.google.com">Google Translate Toolkit</a>翻译。</p>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-theme-e-green.html" title="Wordpress新主题《新绿 E-Green》上线">Wordpress新主题《新绿 E-Green》上线</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-plugin-bug.html" title="Wordpress 2.8 冲突插件">Wordpress 2.8 冲突插件</a></li><li><a href="http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html" title="WordPress2.8自定义分类">WordPress2.8自定义分类</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html" title="Wordpress2.8 body_class()函数">Wordpress2.8 body_class()函数</a></li><li><a href="http://epile.org/blog/html/5-useful-wordpress-functions.html" title="5个你不知道的Wordpress函数">5个你不知道的Wordpress函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/wordpress-cms-plugins-pods.html/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>WordPress2.8 body_class()函数</title>
		<link>http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html</link>
		<comments>http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html#comments</comments>
		<pubDate>Sat, 06 Jun 2009 00:45:23 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[网络技术]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://epile.cn/blog/?p=854</guid>
		<description><![CDATA[原文：WordPress 2.8 and the body_class() Function 翻译：Epile 首发于译言 2月7日，在我随意浏览Wordpress的主干代码时，发现wp-includes/post-template.php里面有一个非常酷的新功能。 从Wordpress2.8开始，主题将能够使用body_class()函数在开放&#60;body&#62;标签代替特殊class（location-specific classes），通常位于大多数主题的header.php文件。 为什么它是重要的？因为它开创了只用CSS就能够改变几乎一切的外观。 在我们进入body_class()函数应用之前，让我们先了解一些技术细节。 body_class（）生成什么？ body_class()函数在Wordpress2.7几乎和post_class()有同样的运行方式，唯一不同的是class的生成。body_class()函数生成的class大多是根据你的访问者在网站的位置。例如，如果访问者在你的博客首页，但你没有设置一个静态主页，函数和类可能会产生如下所示： &#60;body class=&#8221;home blog&#8221;&#62; 注意，这些是两个不同的class，你可以选择任何一个。 然而，如果你在某个帖子，body标签看起来可能是这样： &#60;body class=&#8221;single postid-64&#8243;&#62; 如果你正在浏览一个页面，body_class()会生成这样： &#60;body class=&#8221;page page-id-3 parent-page-id-0 page-template-default&#8221;&#62; 从本质上讲，body_class()会生成基于内容的动态CSS class，以及在什么情况下浏览。例如，如果你是注册用户，且已经登录，body_class()会在body标签生成一个登录class。 以下为可用的body class的完整列表： rtl home blog archive date search paged attachment error404 single postid-(id) attachmentid-(id) attachment-(mime-type) author author-(user_nicename) category category-(slug) tag tag-(slug) page page-parent page-child [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>原文：<a rel="external nofollow" href="http://www.nathanrice.net/blog/wordpress-2-8-and-the-body_class-function/" target="_blank">WordPress 2.8 and the body_class() Function</a><br />
翻译：<a href="http://epile.org/blog/" target="_blank"><span>Epile</span></a><br />
首发于译言</p></blockquote>
<p>2月7日，在我随意浏览Wordpress的主干代码时，发现wp-includes/post-template.php里面有一个非常酷的新功能。</p>
<p>从Wordpress2.8开始，主题将能够使用<strong>body_class</strong><strong>()</strong>函数在开放&lt;body&gt;标签代替特殊class（location-specific classes），通常位于大多数主题的header.php文件。<br />
<span id="more-854"></span></p>
<p>为什么它是重要的？因为它开创了只用CSS就能够改变几乎一切的外观。</p>
<p>在我们进入<strong>body_class</strong><strong>()</strong>函数应用之前，让我们先了解一些技术细节。</p>
<h3><strong>body_class（）生成什么？</strong></h3>
<p><strong>body_class()</strong>函数在Wordpress2.7几乎和<strong>post_class()</strong>有同样的运行方式，唯一不同的是class的生成。body_class()函数生成的class大多是根据你的访问者在网站的位置。例如，如果访问者在你的博客首页，但你没有设置一个静态主页，函数和类可能会产生如下所示：</p>
<blockquote><p>&lt;body class=&#8221;home blog&#8221;&gt;</p></blockquote>
<p>注意，这些是两个不同的class，你可以选择任何一个。</p>
<p>然而，如果你在某个帖子，body标签看起来可能是这样：</p>
<blockquote><p>&lt;body class=&#8221;single postid-64&#8243;&gt;</p></blockquote>
<p>如果你正在浏览一个页面，<strong>body_class()</strong>会生成这样：</p>
<blockquote><p>&lt;body class=&#8221;page page-id-3 parent-page-id-0 page-template-default&#8221;&gt;</p></blockquote>
<p>从本质上讲，<strong>body_class()</strong>会生成基于内容的动态CSS class，以及在什么情况下浏览。例如，如果你是注册用户，且已经登录，<strong>body_class()</strong>会在body标签生成一个登录class。</p>
<p>以下为可用的body class的完整列表：</p>
<ul>
<li>rtl</li>
<li>home</li>
<li>blog</li>
<li>archive</li>
<li>date</li>
<li>search</li>
<li>paged</li>
<li>attachment</li>
<li>error404</li>
<li>single postid-(id)</li>
<li>attachmentid-(id)</li>
<li>attachment-(mime-type)</li>
<li>author</li>
<li>author-(user_nicename)</li>
<li>category</li>
<li>category-(slug)</li>
<li>tag</li>
<li>tag-(slug)</li>
<li>page</li>
<li>page-parent</li>
<li>page-child parent-pageid-(id)</li>
<li>page-template page-template-(template file name)</li>
<li>search-results</li>
<li>search-no-results</li>
<li>logged-in</li>
<li>paged-(page number)</li>
<li>single-paged-(page number)</li>
<li>page-paged-(page number)</li>
<li>category-paged-(page number)</li>
<li>tag-paged-(page number)</li>
<li>date-paged-(page number)</li>
<li>author-paged-(page number)</li>
<li>search-paged-(page number)</li>
</ul>
<h3><strong>如何为自己的主题添加body_class()</strong></h3>
<p>这实际上是一件容易的事情。假设你正在使用Wordpress2.8，所有你需要做的就是增加一个新的模板标记。你需要找到这些模板文件生成开放&lt;body&gt;标签的位置，它通常在header.php文件里。</p>
<p>当你找到&lt;body&gt;标签的位置后，请把它更改为：</p>
<blockquote><p>&lt;body &lt;?php body_class(); ?&gt;&gt;</p></blockquote>
<p>保存文件并上传到服务器，你就大功告成了。</p>
<h3><strong>使用动态Body Class</strong></h3>
<p>现在我们有了body class，有什么大不了呢？我将会解释：</p>
<p>除了HTML元素外，&lt;body&gt;标签包围着其他所有的HTML代码。因此，body class允许我们对网页任何元素进行修改，具体到当前页面。</p>
<p>也许通过实例更容易理解。</p>
<p>我们主题左边有一个&lt;div id=&#8221;content&#8221;&gt;，右边有一个&lt;div id=&#8221;sidebar&#8221;&gt;，他们都在一个960px宽&lt;div id=&#8221;container&#8221;&gt;里。content div为600px宽，sidebar div为360px宽。但是，当浏览单独的帖子页面，我让我的主题不显示sidebar。现在，我们只剩下一个content div。不幸的是，container div为960px宽，而我们的content div却只有600px宽。</p>
<p>我们难道用一个大空白区填充我们的工具栏？该如何解决呢？使用body class这将很简单。我们只需要针对&lt;div id=&#8221;content&#8221;&gt;在帖子页的情况进行定义。在CSS里为：</p>
<blockquote><p>.single #content{<br />
width: 960px;<br />
}</p></blockquote>
<p>通过这样做，在帖子页面，content div为960px宽。</p>
<p>我们正在增加一个简单有选择性的CSS系统。</p>
<h3><strong>新增body_class()的class</strong></h3>
<p>在某些情况下，你将要添加自己的Class到<strong>body<span><strong>_class()</strong>里。如果你发现自己处在这种情况下，这些有些方法可以做到这一点。</span></strong></p>
<p>首先，最简单的方法是通过自定义Class函数调用<strong>body_class()</strong>。例如：</p>
<blockquote><p>&lt;body &lt;?php body_class(&#8216;my-class&#8217;); ?&gt;&gt;</p></blockquote>
<p>通过这样做，我们现在告诉<strong>body_class()</strong>函数增加my-class的输出。</p>
<p>第二，困难但更灵活的方式是，利用Wordpress的过滤器，增加新的body class。在这种情况下，我们将使用<strong>get_body_class()</strong>函数中的body_class过滤器。如果你不清楚过滤器如何运行，我将会在不久后写一篇文章。在此之前，看看你是否能够赶上来，非常容易。</p>
<p>这是增加使用过滤器增加class的例子：</p>
<blockquote><p>add_filter(&#8216;body_class&#8217;,'my_body_classes&#8217;);<br />
function my_body_classes($classes, $class) {<br />
// add &#8216;my-class&#8217; to the $classes array<br />
$classes[] = &#8216;my-class&#8217;;<br />
// return the $classes array<br />
return $classes;<br />
}<br />
?&gt;</p></blockquote>
<p>通过使用这个方法，我们允许在第一种方法中无法使用自己的条件以及其他很酷的事情。</p>
<h3><strong>延伸阅读</strong></h3>
<p>如果你想知道更多关于<strong>body_class()</strong>函数的信息，以下为一些我推荐的资源：</p>
<ul>
<li>Study the <a rel="external nofollow" href="http://xref.yoast.com/trunk/wp-includes/post-template.php.source.html#l360">source code</a> for the get_body_class() function.</li>
<li>Check out <a rel="external nofollow" href="http://op111.net/71">Demetris’s thoughts</a> on the new WordPress 2.8 features.</li>
<li>Browse the <a rel="external nofollow" href="http://codex.wordpress.org/Version_2.8">WordPress 2.8 Overview</a> at the Codex.</li>
<li>Take a look at the <a rel="external nofollow" href="http://core.trac.wordpress.org/ticket/7939">trac ticket</a> that got the ball rolling.</li>
<li>WPEngineer.com  <a rel="external nofollow" href="http://wpengineer.com/wordpress-28-body_class-automatic_feed_links/">a good summary</a> of the body_class() function.</li>
<li>PerishablePress has <a rel="external nofollow" href="http://perishablepress.com/press/2009/05/26/dynamic-body-class-id-php-wordpress/">some good stuff</a> on body_class() usage.</li>
</ul>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-theme-e-green.html" title="Wordpress新主题《新绿 E-Green》上线">Wordpress新主题《新绿 E-Green》上线</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-plugin-bug.html" title="Wordpress 2.8 冲突插件">Wordpress 2.8 冲突插件</a></li><li><a href="http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html" title="WordPress2.8自定义分类">WordPress2.8自定义分类</a></li><li><a href="http://epile.org/blog/html/wordpress-cms-plugins-pods.html" title="Wordpress CMS插件 Pods">Wordpress CMS插件 Pods</a></li><li><a href="http://epile.org/blog/html/5-useful-wordpress-functions.html" title="5个你不知道的Wordpress函数">5个你不知道的Wordpress函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>5个你不知道的WordPress函数</title>
		<link>http://epile.org/blog/html/5-useful-wordpress-functions.html</link>
		<comments>http://epile.org/blog/html/5-useful-wordpress-functions.html#comments</comments>
		<pubDate>Thu, 04 Jun 2009 09:28:22 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[网络技术]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://epile.cn/blog/?p=851</guid>
		<description><![CDATA[原文：5 Useful WordPress Functions You Didn’t Know Existed 翻译：Epile 首发于译言 在Wordpress的 source code 里有大量实用函数可供你在主题和插件中使用。但是，有很多人并不知道它的存在，可能因为 the Codex 极度不完善，许多人讨厌看源代码。幸运的是，阅读Wordpress源代码是我的爱好。 所以，我编制了一份我收藏的函数名单。有一些很简单，几乎每一个人都会实用；而另一些不太常用；但是这些都是非常实用的。 1. wp_mail() wp_mail()基本上是一个超级简单的函数，允许你通过一些简单的代码轻松地向任何人发送电子邮件。例如： &#60;?php $to = &#8216;user@example.com&#8217;; $subject = &#8216;Hello from my blog!&#8217;; $message = &#8216;Check it out &#8212; my blog is emailing you!&#8217; $mail = wp_mail($to, $subject, $message); if($mail) echo &#8216;Your message has been sent!&#8217;; else echo &#8216;There [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>原文：<a rel="external nofollow" href="http://www.nathanrice.net/blog/5-useful-wordpress-functions-you-didnt-know-existed/" target="_blank">5 Useful WordPress Functions You Didn’t Know Existed</a><br />
翻译：<a href="http://epile.org/blog/" target="_blank"><span style="color: #004d99;">Epile</span></a><br />
首发于译言</p></blockquote>
<p>在Wordpress的 <a href="http://phpxref.com/xref/wordpress/nav.html?index.html">source code</a> 里有大量实用函数可供你在主题和插件中使用。但是，有很多人并不知道它的存在，可能因为 <a href="http://codex.wordpress.org/">the Codex</a> 极度不完善，许多人讨厌看源代码。幸运的是，阅读Wordpress源代码是我的爱好。</p>
<p>所以，我编制了一份我收藏的函数名单。有一些很简单，几乎每一个人都会实用；而另一些不太常用；但是这些都是非常实用的。</p>
<p><span id="more-851"></span></p>
<h3>1. wp_mail()</h3>
<p><strong>wp_mail()</strong>基本上是一个超级简单的函数，允许你通过一些简单的代码轻松地向任何人发送电子邮件。例如：</p>
<blockquote><p>&lt;?php<br />
$to = &#8216;user@example.com&#8217;;<br />
$subject = &#8216;Hello from my blog!&#8217;;<br />
$message = &#8216;Check it out &#8212; my blog is emailing you!&#8217;</p>
<p>$mail = wp_mail($to, $subject, $message);</p>
<p>if($mail) echo &#8216;Your message has been sent!&#8217;;<br />
else echo &#8216;There was a problem sending your message. Please try again.&#8217;;<br />
?&gt;</p></blockquote>
<p>你可以指定第三和第四个参数，<strong>$headers</strong> 和 <strong>$attachments</strong>。这个函数能够完成任何你所能想到的繁重任务。</p>
<p>你可以查看函数参考<a rel="external nofollow" href="http://codex.wordpress.org/Function_Reference/wp_mail" target="_blank">via</a>，或者查看函数源代码<a rel="external nofollow" href="http://phpxref.com/xref/wordpress/wp-includes/pluggable.php.source.html#l222" target="_blank">via</a>（强烈建议）。</p>
<h3>2. wp_loginout()</h3>
<p>这个函数使我们能够在主题中显示“登录”链接，所以我们可以轻易的登录，而无须手动输入/wp-admin/ 或/wp-login.php 链接。但是，它不仅仅如此，如果我们已经登录，它将显示“注销”链接而不再是“登录”链接，而使我们无需访问控制台就能够登出账户。</p>
<p>这个函数对于主题作者非常有用，因为它为你建立了所有的逻辑。如果你仍然手动添加登录或注销，你只是在浪费时间。不要瞎忙，使用<strong>wp_loginout()</strong>。</p>
<p>你可以查看模板标签参考<a rel="external nofollow" href="http://codex.wordpress.org/Template_Tags/wp_loginout" target="_blank">via</a>，或者查看函数源代码<a rel="external nofollow" href="http://phpxref.com/xref/wordpress/wp-includes/general-template.php.source.html#l121" target="_blank">via</a>。</p>
<h3>3. clean_url()</h3>
<p>这个函数输入URL并测试它的结构是否正确。如果链接前面缺少http://它可以自动添加，转换符号为正确的HTML，和其他措施用来解决结构不良的网址。</p>
<p>有用的情况还有很多，一个我认为有用的是在主题或插件的设置页面，可以不必要求用户输入的链接必须包括http://。如果这个函数没有其他的作用，那对于我来说这一作用就是有用的。</p>
<p>你可以查看模板标签参考<a rel="external nofollow" href="http://codex.wordpress.org/Function_Reference/clean_url" target="_blank">via</a>，或者查看函数源代码<a rel="external nofollow" href="http://phpxref.com/xref/wordpress/wp-includes/general-template.php.source.html#l121" target="_blank">via</a>。</p>
<h3>4. wpautop()</h3>
<p>这个函数用来转换换行符字符串为&lt;br /&gt;标记，并把双换行符作为一个新的段落的开始，在前一段加入&lt;/p&gt;，并在新的段落加上&lt;p&gt;。它还负责关闭段落标签，所以格式都是正确的。</p>
<p>如果你曾经储存了字符串文字在数据库中，现在你需要在网站前端（页面）展示这些内容。但是你想知道如何把这些换行符输出为有效的Html，这个函数就实现这样的功能。事实上，这个函数在输出t<strong>he_content()</strong>时用来格式化帖子的。</p>
<p>你可以查看模板标签参考<a rel="external nofollow" href="http://codex.wordpress.org/Function_Reference/wpautop" target="_blank">via</a>，或者查看函数源代码<a rel="external nofollow" href="http://phpxref.com/xref/wordpress/wp-includes/formatting.php.source.html#l102" target="_blank">via</a>。</p>
<h3>5. wp_rss() / get_rss()</h3>
<p>这个函数可以从一个RSS Feed中抽取数据，通过你的处理，显示为链接列表。</p>
<p>我在很多个客户的网站上使用了这个函数，他们需要我在网站的上显示来源于其他网站的故事。所有你需要做的是提供一个RSS Feed地址，函数将帮你完成这些困难的工作。</p>
<p>前提条件是在你使用这些函数前必须包含这些PHP代码，它仅仅只是额外的一行代码：</p>
<blockquote><p>&lt;?php<br />
include_once(ABSPATH . WPINC . &#8216;/rss.php&#8217;); // &lt; &#8212; this is the include call<br />
wp_rss(&#8216;http://example.com/rss/feed/goes/here&#8217;, 5); // &lt;&#8211; this is the function<br />
?&gt;</p></blockquote>
<p>你可以查看模板标签参考<strong> wp_rss()</strong> <a rel="external nofollow" href="http://codex.wordpress.org/Function_Reference/wp_rss" target="_blank">via</a> 或<strong>get_rss()</strong> <a rel="external nofollow" href="http://codex.wordpress.org/Function_Reference/get_rss" target="_blank">via</a>，或者查看函数源代码<a rel="external nofollow" href="http://phpxref.com/xref/wordpress/wp-includes/rss.php.source.html#l875" target="_blank">via</a>。</p>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-theme-e-green.html" title="Wordpress新主题《新绿 E-Green》上线">Wordpress新主题《新绿 E-Green》上线</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-plugin-bug.html" title="Wordpress 2.8 冲突插件">Wordpress 2.8 冲突插件</a></li><li><a href="http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html" title="WordPress2.8自定义分类">WordPress2.8自定义分类</a></li><li><a href="http://epile.org/blog/html/wordpress-cms-plugins-pods.html" title="Wordpress CMS插件 Pods">Wordpress CMS插件 Pods</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html" title="Wordpress2.8 body_class()函数">Wordpress2.8 body_class()函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/5-useful-wordpress-functions.html/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>如何在WordPress 2.8创建自己的Widget</title>
		<link>http://epile.org/blog/html/creating-widgets-in-wordpress-28.html</link>
		<comments>http://epile.org/blog/html/creating-widgets-in-wordpress-28.html#comments</comments>
		<pubDate>Mon, 01 Jun 2009 07:11:26 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[网络技术]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://epile.cn/blog/?p=847</guid>
		<description><![CDATA[原文：The complete guide to creating widgets in WordPress 2.8 翻译：Epile 首发于译言 我在WordPress-o-Sphere网站上看到一些Wordpress2.8创建Widget指南，但是我并认为它们中任何一个真正涉及了实际应用。我想通过使用Wordpress2.8的Widget类来告诉你如何创建一个实际应用的Widget。 这个教程，我会从建立Widget、设置表单，显示在网站一步步来告诉你。结尾附有可供下载的实例。当然，你也通过把它应用到你的主题中去。如果你不想阅读教程，可以直接到教程结尾下载实例。 建立什么样的Widget实例？ 这个教程，我们将建立一个极其简单的实例，但是你会从中看到如何给予用户更多的Widget控制权的高级技术。 实例Widget将显示一个人的姓名和性别。控件将允许输入Widget标题（文本框）、用户名称（文本框），可以选择用户的性别（选择框）和是否允许公开显示性别信息（复选框）。 以下是Widget的外观： 我知道，这个优点简单，但你可以把这些工具应用到更复杂的Widget中。 在恰当的时候载入Widget 我门要做的第一件事情是必须在需要的时候载入Widget。Wordpress提供的widgets_init操作钩子（Action Hook）使我们能够做到这一点。操作钩子（Action Hook）在Wordpress默认Widget注册后被触发。 function Example_Widget() { /* Widget settings. */ $widget_ops = array( &#8216;classname&#8217; =&#62; &#8216;example&#8217;, &#8216;description&#8217; =&#62; &#8216;An example widget that displays a person&#8217;s name and sex.&#8217; ); /* Widget control settings. */ $control_ops = [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>原文：<a rel="external nofollow" href="http://justintadlock.com/archives/2009/05/26/the-complete-guide-to-creating-widgets-in-wordpress-28" target="_blank">The complete guide to creating widgets in WordPress 2.8</a><br />
翻译：<a href="http://epile.org/blog/" target="_blank"><span style="color: #004d99;">Epile</span></a><br />
首发于译言</p></blockquote>
<p>我在WordPress-o-Sphere网站上看到一些Wordpress2.8创建Widget指南，但是我并认为它们中任何一个真正涉及了实际应用。我想通过使用Wordpress2.8的Widget类来告诉你如何创建一个实际应用的Widget。</p>
<p>这个教程，我会从建立Widget、设置表单，显示在网站一步步来告诉你。结尾附有可供下载的实例。当然，你也通过把它应用到你的主题中去。如果你不想阅读教程，可以直接到教程结尾下载实例。</p>
<p><span id="more-847"></span></p>
<h3>建立什么样的Widget实例？</h3>
<p>这个教程，我们将建立一个极其简单的实例，但是你会从中看到如何给予用户更多的Widget控制权的高级技术。</p>
<p>实例Widget将显示一个人的姓名和性别。控件将允许输入Widget标题（文本框）、用户名称（文本框），可以选择用户的性别（选择框）和是否允许公开显示性别信息（复选框）。</p>
<p>以下是Widget的外观：</p>
<p><img class="aligncenter size-medium wp-image-849" title="example-widget" src="http://img.epile.org/e/2009/06/example-widget-580x145.png" alt="example-widget" width="580" height="145" /></p>
<p>我知道，这个优点简单，但你可以把这些工具应用到更复杂的Widget中。</p>
<h3>在恰当的时候载入Widget</h3>
<p>我门要做的第一件事情是必须在需要的时候载入Widget。Wordpress提供的<strong>widgets_init</strong>操作钩子（Action Hook）使我们能够做到这一点。操作钩子（Action Hook）在Wordpress默认Widget注册后被触发。</p>
<blockquote><p>function Example_Widget() {<br />
/* Widget settings. */<br />
$widget_ops = array( &#8216;classname&#8217; =&gt; &#8216;example&#8217;, &#8216;description&#8217; =&gt; &#8216;An example widget that displays a person&#8217;s name and sex.&#8217; );<br />
/* Widget control settings. */<br />
$control_ops = array( &#8216;width&#8217; =&gt; 300, &#8216;height&#8217; =&gt; 350, &#8216;id_base&#8217; =&gt; &#8216;example-widget&#8217; );</p>
<p>/* Create the widget. */<br />
$this-&gt;WP_Widget( &#8216;example-widget&#8217;, &#8216;Example Widget&#8217;, $widget_ops, $control_ops );<br />
}</p></blockquote>
<p>如果你要创建一个以上的Widget，请在<strong>example_load_widgets()</strong>函数内为每个Widget使用<strong>register_widget()</strong>函数。</p>
<h3>建立我们的Widget</h3>
<p>过去，我们建立Widget是一件很费解的事情。在2.8里，我们只要扩展原有的<strong>WP_Widget</strong>类。因此，第一步是建立一个新的类（Class）。</p>
<blockquote><p>class Example_Widget extends WP_Widget {</p></blockquote>
<p>然后，我门将要添加第一个函数。这个函数将使我们的Widget不同于默认的，且允许我们设置它。</p>
<p>请注意，类名称和函数名称是相同的。例子中均为 <strong>Example_Widget</strong>。</p>
<blockquote><p>function Example_Widget() {</p>
<p>/* Widget settings. */</p>
<p>$widget_ops = array( &#8216;classname&#8217; =&gt; &#8216;example&#8217;, &#8216;description&#8217; =&gt; &#8216;An example widget that displays a person&#8217;s name and sex.&#8217; );</p>
<p>/* Widget control settings. */</p>
<p>$control_ops = array( &#8216;width&#8217; =&gt; 300, &#8216;height&#8217; =&gt; 350, &#8216;id_base&#8217; =&gt; &#8216;example-widget&#8217; );</p>
<p>/* Create the widget. */</p>
<p>$this-&gt;WP_Widget( &#8216;example-widget&#8217;, &#8216;Example Widget&#8217;, $widget_ops, $control_ops );</p>
<p>}</p></blockquote>
<h3>显示Widget</h3>
<p><strong>Example_Widget</strong>类的下一个函数负责显示Widget。此代码可能使你优点困惑，因为我们并不知道发生了什么（我们还没有添加控制功能）。这这里我们将取得用户设置并根据设置显示。</p>
<p>还有一点也很重要，确保<strong>$before_widget</strong>，<strong>$after_widget</strong>，<strong>$before_title</strong>，<strong>$after_title</strong>可以用。这些是由主题实现的，我们不应该硬编码。Widget如何显示是由主题负责的。</p>
<blockquote><p>function widget( $args, $instance ) {<br />
extract( $args );</p>
<p>/* User-selected settings. */<br />
$title = apply_filters(&#8216;widget_title&#8217;, $instance['title'] );<br />
$name = $instance['name'];<br />
$sex = $instance['sex'];<br />
$show_sex = isset( $instance['show_sex'] ) ? $instance['show_sex'] : false;</p>
<p>/* Before widget (defined by themes). */<br />
echo $before_widget;</p>
<p>/* Title of widget (before and after defined by themes). */<br />
if ( $title )<br />
echo $before_title . $title . $after_title;</p>
<p>/* Display name from widget settings. */<br />
if ( $name )<br />
echo &#8216;&lt;p&gt;Hello.  My name is&#8217; . $name . &#8216;.&lt;/p&gt;&#8217;;</p>
<p>/* Show sex. */<br />
if ( $show_sex )<br />
echo &#8216;&lt;p&gt;I am a &#8216; . $sex . &#8216;.&lt;/p&gt;&#8217;;</p>
<p>/* After widget (defined by themes). */<br />
echo $after_widget;<br />
}</p></blockquote>
<h3>确保Widget更新并保存</h3>
<p>这一步，我们将设置每个Widget并保存。这是一个简单的程序，我们只是更新用户的设置。</p>
<p>如果你在表格中使用的是一个像文本输入的功能，而不让用户使用XHTML，那么你应该使用下面的<strong>strip_tags()</strong>函数。</p>
<blockquote><p>function update( $new_instance, $old_instance ) {<br />
$instance = $old_instance;</p>
<p>/* Strip tags (if needed) and update the widget settings. */<br />
$instance['title'] = strip_tags( $new_instance['title'] );<br />
$instance['name'] = strip_tags( $new_instance['name'] );<br />
$instance['sex'] = $new_instance['sex'];<br />
$instance['show_sex'] = $new_instance['show_sex'];</p>
<p>return $instance;<br />
}</p></blockquote>
<h3>创建Widget设置面版</h3>
<p>WordPress2.8新的Widget类能够轻易创建Widget控制面版。<strong>get_field_id()</strong>和<strong>get_field_name()</strong>函数负责大部分肮脏的工作，使我们更专注于像建立Widget这样更重要的事情。请特别注意这个函数的使用，因为它能使得你的更简单地开发。</p>
<p>首先，我们可能想要设置一些默认值。通过建立默认值，我们可以控制在用户没有设置时该显示什么。</p>
<blockquote><p>function form( $instance ) {</p>
<p>/* Set up some default widget settings. */<br />
$defaults = array( &#8216;title&#8217; =&gt; &#8216;Example&#8217;, &#8216;name&#8217; =&gt; &#8216;John Doe&#8217;, &#8216;sex&#8217; =&gt; &#8216;male&#8217;, &#8216;show_sex&#8217; =&gt; true );<br />
$instance = wp_parse_args( (array) $instance, $defaults ); ?&gt;</p></blockquote>
<p>表格的前两部分是文本输入框，Widget标题和用户性别。</p>
<blockquote><p>&lt;p&gt;<br />
&lt;label for=&#8221;&lt;?php echo $this-&gt;get_field_id( &#8216;title&#8217; ); ?&gt;&#8221;&gt;Title:&lt;/label&gt;<br />
&lt;input id=&#8221;&lt;?php echo $this-&gt;get_field_id( &#8216;title&#8217; ); ?&gt;&#8221; name=&#8221;&lt;?php echo $this-&gt;get_field_name( &#8216;title&#8217; ); ?&gt;&#8221; value=&#8221;&lt;?php echo $instance['title']; ?&gt;&#8221; style=&#8221;width:100%;&#8221; /&gt;<br />
&lt;/p&gt;</p>
<p>&lt;p&gt;<br />
&lt;label for=&#8221;&lt;?php echo $this-&gt;get_field_id( &#8216;name&#8217; ); ?&gt;&#8221;&gt;Your Name:&lt;/label&gt;<br />
&lt;input id=&#8221;&lt;?php echo $this-&gt;get_field_id( &#8216;name&#8217; ); ?&gt;&#8221; name=&#8221;&lt;?php echo $this-&gt;get_field_name( &#8216;name&#8217; ); ?&gt;&#8221; value=&#8221;&lt;?php echo $instance['name']; ?&gt;&#8221; style=&#8221;width:100%;&#8221; /&gt;<br />
&lt;/p&gt;</p></blockquote>
<p>表单第二步是这一单选框，允许用户选择性别。</p>
<blockquote><p>&lt;p&gt;<br />
&lt;label for=&#8221;&lt;?php echo $this-&gt;get_field_id( &#8216;sex&#8217; ); ?&gt;&#8221;&gt;Sex:&lt;/label&gt;<br />
&lt;select id=&#8221;&lt;?php echo $this-&gt;get_field_id( &#8216;sex&#8217; ); ?&gt;&#8221; name=&#8221;&lt;?php echo $this-&gt;get_field_name( &#8216;sex&#8217; ); ?&gt;&#8221; class=&#8221;widefat&#8221; style=&#8221;width:100%;&#8221;&gt;<br />
&lt;option &lt;?php if ( &#8216;male&#8217; == $instance['format'] ) echo &#8216;selected=&#8221;selected&#8221;&#8216;; ?&gt;&gt;male&lt;/option&gt;<br />
&lt;option &lt;?php if ( &#8216;female&#8217; == $instance['format'] ) echo &#8216;selected=&#8221;selected&#8221;&#8216;; ?&gt;&gt;female&lt;/option&gt;<br />
&lt;/select&gt;<br />
&lt;/p&gt;</p></blockquote>
<p>表单的最后一项是一个可供用户选择是否显示性别信息的复选框。</p>
<blockquote><p>&lt;p&gt;<br />
&lt;input class=&#8221;checkbox&#8221; type=&#8221;checkbox&#8221; &lt;?php checked( $instance['show_sex'], true ); ?&gt; id=&#8221;&lt;?php echo $this-&gt;get_field_id( &#8216;show_sex&#8217; ); ?&gt;&#8221; name=&#8221;&lt;?php echo $this-&gt;get_field_name( &#8216;show_sex&#8217; ); ?&gt;&#8221; /&gt;<br />
&lt;label for=&#8221;&lt;?php echo $this-&gt;get_field_id( &#8216;show_sex&#8217; ); ?&gt;&#8221;&gt;Display sex publicly?&lt;/label&gt;<br />
&lt;/p&gt;</p></blockquote>
<p>唯一还没有完成的是关闭表单函数并完成剩下的Widget代码。</p>
<blockquote><p>&lt;?php<br />
}<br />
}<br />
?&gt;</p></blockquote>
<h3>创建属于你自己的Widget</h3>
<p>如果你在Wordpress2.8以前曾经和企图创建一个Widget，那么你可以看看现在是多么的简单。为了帮助人们学习新的系统，我已经把这一教程的代码放到一起，并在里面详细注释了代码的功能。</p>
<p><a rel="external nofollow" href="http://justintadlock.com/downloads/example-widget.zip"><span style="color: #2e6ab1;">下载Widget实例代码</span></a></p>
<p>我喜欢使用新的Widget类，在不久的将来我可能会发布一些Widget。但是，我很想看看你的Widget。</p>
<p><span style="font-family: mceinline;">Update：发现同类文章一篇</span> <a rel="external nofollow" href="http://www.wordpress.la/build-widget-with-new-api.html" target="_blank">如何在WordPress 2.8中用新Widget API创建Widget</a></p>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-theme-e-green.html" title="Wordpress新主题《新绿 E-Green》上线">Wordpress新主题《新绿 E-Green》上线</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-plugin-bug.html" title="Wordpress 2.8 冲突插件">Wordpress 2.8 冲突插件</a></li><li><a href="http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html" title="WordPress2.8自定义分类">WordPress2.8自定义分类</a></li><li><a href="http://epile.org/blog/html/wordpress-cms-plugins-pods.html" title="Wordpress CMS插件 Pods">Wordpress CMS插件 Pods</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html" title="Wordpress2.8 body_class()函数">Wordpress2.8 body_class()函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/creating-widgets-in-wordpress-28.html/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>WordPress主题开发检查清单</title>
		<link>http://epile.org/blog/html/theme-development-checklist.html</link>
		<comments>http://epile.org/blog/html/theme-development-checklist.html#comments</comments>
		<pubDate>Thu, 28 May 2009 15:49:26 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[网络技术]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://epile.cn/blog/?p=834</guid>
		<description><![CDATA[Stefan Vervoort发布了PDF版本的WordPress主题开发检查清单。 这份清单包含了许多小窍门，容易被遗忘的代码段和检查点。 概况： 概述（General ） 样式（Stylesheets ） 浏览器兼容（Browser Compatibility ） 页面（Pages ） 全局CSS定义（Styled Everything?） 标准的CSS类（Standard CSS Classes ） 代码验证（Validate ） WordPress代码（WordPress Code ） 博客元素（Blog Elements ） 下载地址：http://wptoy.com/download/1 您可能还对以下内容感兴趣Wordpress新主题《新绿 E-Green》上线Wordpress 2.8 冲突插件WordPress2.8自定义分类Wordpress CMS插件 PodsWordpress2.8 body_class()函数]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-835" title="themedevchecklist" src="http://img.epile.org/e/2009/05/themedevchecklist.png" alt="themedevchecklist" width="539" height="359" /></p>
<p>Stefan Vervoort发布了PDF版本的<a rel="external nofollow" href="http://wptoy.com/resources/wordpress-theme-development-check-list-pdf-version/" target="_blank">WordPress主题开发检查清单</a>。 这份清单包含了许多小窍门，容易被遗忘的代码段和检查点。</p>
<p>概况：</p>
<ul>
<li>概述（General ）</li>
<li>样式（Stylesheets ）</li>
<li>浏览器兼容（Browser Compatibility ）</li>
<li>页面（Pages ）</li>
<li>全局CSS定义（Styled Everything?）</li>
<li>
<div id="result_box" style="TEXT-ALIGN: left" dir="ltr">标准的CSS类（Standard CSS Classes ）</div>
</li>
<li>代码验证（Validate ）</li>
<li>
<div id="result_box" style="TEXT-ALIGN: left" dir="ltr">
<div id="result_box" style="TEXT-ALIGN: left" dir="ltr">WordPress代码（WordPress Code ）</div>
</div>
</li>
<li>博客元素（Blog Elements ）</li>
</ul>
<p>下载地址：<a rel="external nofollow" href="http://wptoy.com/download/1">http://wptoy.com/download/1</a></p>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-theme-e-green.html" title="Wordpress新主题《新绿 E-Green》上线">Wordpress新主题《新绿 E-Green》上线</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-plugin-bug.html" title="Wordpress 2.8 冲突插件">Wordpress 2.8 冲突插件</a></li><li><a href="http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html" title="WordPress2.8自定义分类">WordPress2.8自定义分类</a></li><li><a href="http://epile.org/blog/html/wordpress-cms-plugins-pods.html" title="Wordpress CMS插件 Pods">Wordpress CMS插件 Pods</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html" title="Wordpress2.8 body_class()函数">Wordpress2.8 body_class()函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/theme-development-checklist.html/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>掌握WordPress的子主题</title>
		<link>http://epile.org/blog/html/harness-the-power-of-wordpress-child-themes.html</link>
		<comments>http://epile.org/blog/html/harness-the-power-of-wordpress-child-themes.html#comments</comments>
		<pubDate>Thu, 28 May 2009 14:14:39 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[网络技术]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://epile.cn/blog/?p=828</guid>
		<description><![CDATA[原文：Harness The Power of WordPress Child Themes 翻译：Epile 首发于译言 你制作或修改一个Wordpress主题需要耗费多少时间？即使你已经写过少量的主题，有时候你仍然对完成一个主题所耗费的时间而感到沮丧？你是否曾经希望能有一个更简单的方法？实际上，所有问题的答案就是使用Wordpess的子主题（Child Theme）。 设想自己能够在几分钟内修改一个主题，或在几个小时或以内建立一个功能齐全的Wordpress主题。 在这篇文章，我们将学会如何通过子主题帮忙我们敏捷开发Wordpress主题。 WordPress 子主题 一个Wordpress的子主题就像任何其他Wordpress主题一样，你可以把它们放在你的博客的主题目录（/wp-content/themes）下，然后在主题控制面板激活它们。它们同样拥有存在图片、脚本、截图（screenshot）、CSS的文件夹。 唯一不同的地方是子主题基本上不需要任何主题文件（header.php, index.php, footer.php, single.php等）。这是我们为什么不需要使用PHP的另一个原因。 现在，就让我们开始创建自己的子主题。 选择你的父主题 在我们建立我们的子主题之前，我们必须先建立我们的父主题（Parent Theme）。为此，我们选择了Kubrick作为我们的父主题。你并不需要下载它因为它已经是Wordpress安装时自带的默认主题，位置在/wp-content/themes/default/。 建立你的子主题 就像我所说的，一个子主题，就像是任何其它Wordpress主题一样，所以我们必须为它在主题目录中创建一个新文件夹，并把它命名为“koobreek”。在此之后，koobreek文件夹里新建一个style.css的空白文件。 子主题样式 这是子主题神奇所在的地方。打开koobreek主题目录下的style.css，并粘贴下面的内容。请特别注意行8的内容。 /*   Theme Name: Koobreek   Theme URI: http://wordpress.org/   Description: This is a child theme of Kubrick   Version: 1   Author: Raymond Selda   Author URI: http://www.raymondselda.com/   Template: default   */ 现在你已经以Kubrick为父主题创建你的子主题。之所以让你注意行8，是因为它是父主题文件夹的名称。现在请在主题控制面板激活你的子主题。如果一切正常，你看到的界面应该是不包含设计，单纯的XHTML。 从父主题导入样式 现在，除非今天是CSS裸体日，你可能想要用CSS样式装饰你的主题。我想尽可能基础和简单，因此本教程将通过加入一行代码导入父主题CSS样式。 /*   Theme Name: Koobreek   Theme URI: http://wordpress.org/   Description: This is a child theme of Kubrick   [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>原文：<a rel="external nofollow" href="http://www.raymondselda.com/harness-the-power-of-wordpress-child-themes/" target="_blank">Harness The Power of WordPress Child Themes</a><br />
翻译：<a rel="external nofollow" href="http://epile.org/blog/" target="_blank">Epile</a><br />
首发于译言</p></blockquote>
<p>你制作或修改一个Wordpress主题需要耗费多少时间？即使你已经写过少量的主题，有时候你仍然对完成一个主题所耗费的时间而感到沮丧？你是否曾经希望能有一个更简单的方法？实际上，所有问题的答案就是使用Wordpess的子主题（Child Theme）。</p>
<p>设想自己能够在几分钟内修改一个主题，或在几个小时或以内建立一个功能齐全的Wordpress主题。</p>
<p>在这篇文章，我们将学会如何通过子主题帮忙我们敏捷开发Wordpress主题。<br />
<span id="more-828"></span></p>
<h3><span style="FONT-SIZE: medium">WordPress 子主题</span></h3>
<p>一个Wordpress的子主题就像任何其他Wordpress主题一样，你可以把它们放在你的博客的主题目录（/wp-content/themes）下，然后在主题控制面板激活它们。它们同样拥有存在图片、脚本、截图（screenshot）、CSS的文件夹。</p>
<p>唯一不同的地方是子主题基本上不需要任何主题文件（header.php, index.php, footer.php, single.php等）。这是我们为什么不需要使用PHP的另一个原因。</p>
<p>现在，就让我们开始创建自己的子主题。</p>
<h3><span style="FONT-SIZE: medium">选择你的父主题</span></h3>
<p>在我们建立我们的子主题之前，我们必须先建立我们的父主题（Parent Theme）。为此，我们选择了Kubrick作为我们的父主题。你并不需要下载它因为它已经是Wordpress安装时自带的默认主题，位置在/wp-content/themes/default/。</p>
<h3><span style="FONT-SIZE: medium">建立你的子主题</span></h3>
<p>就像我所说的，一个子主题，就像是任何其它Wordpress主题一样，所以我们必须为它在主题目录中创建一个新文件夹，并把它命名为“koobreek”。在此之后，koobreek文件夹里新建一个style.css的空白文件。</p>
<h3><span style="FONT-SIZE: medium">子主题样式</span></h3>
<p>这是子主题神奇所在的地方。打开koobreek主题目录下的style.css，并粘贴下面的内容。请特别注意行8的内容。</p>
<blockquote>
<ol>
<li class="alt"><span><span class="comment">/* </span> </span></li>
<li><span><span class="comment">Theme Name: Koobreek </span> </span></li>
<li class="alt"><span><span class="comment">Theme URI: http://<a class="bodytag" href="http://epile.org/articles/tag/wordpress" target="_blank"><span style="color: #335533;">wordpress</span></a>.org/ </span> </span></li>
<li><span><span class="comment">Description: This is a child theme of Kubrick </span> </span></li>
<li class="alt"><span><span class="comment">Version: 1 </span> </span></li>
<li><span><span class="comment">Author: Raymond Selda </span> </span></li>
<li class="alt"><span><span class="comment">Author URI: <span style="color: #2e6ab1;">http://www.raymondselda.com/</span> </span> </span></li>
<li><span><span class="comment">Template: default </span> </span></li>
<li class="alt"><span><span class="comment">*/</span></span></li>
</ol>
</blockquote>
<p class="alt"><span><span class="comment">现在你已经以Kubrick为父主题创建你的子主题。之所以让你注意行8，是因为它是父主题文件夹的名称。现在请在主题控制面板激活你的子主题。如果一切正常，你看到的界面应该是不包含设计，单纯的XHTML。</span></span></p>
<p class="alt"><span><span class="comment"><a href="http://www.raymondselda.com/wp-content/uploads/2009/05/markup.gif"></a></span></span></p>
<p><span style="FONT-SIZE: medium"><img class="aligncenter size-medium wp-image-829" title="markup-600x465" src="http://img.epile.org/e/2009/05/markup-600x465-561x435.gif" alt="markup-600x465" width="561" height="435" /></span></p>
<h3 class="alt"><span style="FONT-SIZE: medium">从父主题导入样式</span></h3>
<p class="alt">现在，除非今天是<span style="color: #2e6ab1;">CSS裸体日</span>，你可能想要用CSS样式装饰你的主题。我想尽可能基础和简单，因此本教程将通过加入一行代码导入父主题CSS样式。</p>
<blockquote>
<ol>
<li class="alt"><span><span class="comment">/* </span> </span></li>
<li class="alt"><span><span class="comment">Theme Name: Koobreek </span> </span></li>
<li class="alt"><span><span class="comment">Theme URI: http://<span style="color: #335533;">wordpress</span>.org/ </span> </span></li>
<li><span><span class="comment">Description: This is a child theme of Kubrick </span> </span></li>
<li class="alt"><span><span class="comment">Version: 1 </span> </span></li>
<li><span><span class="comment">Author: Raymond Selda </span> </span></li>
<li class="alt"><span><span class="comment">Author URI: http://www.raymondselda.com/ </span> </span></li>
<li><span><span class="comment">Template: default </span> </span></li>
<li class="alt"><span><span class="comment">*/</span><span>  </span></span></li>
<li><span>  </span></li>
<li class="alt"><span class="comment">/* Import Parent Theme Style */</span><span>  </span></li>
<li><span>@import </span><span class="string">url</span><span>(../</span><span class="string">default</span><span>/style.css);  </span></li>
</ol>
</blockquote>
<p><span>子主题看起来应该跟父主题完全一致，但在子主题的背景图片消失了。</span></p>
<p> </p>
<p><span><img class="aligncenter size-medium wp-image-830" title="graphic-missing-600x450" src="http://img.epile.org/e/2009/05/graphic-missing-600x450-580x435.gif" alt="graphic-missing-600x450" width="580" height="435" /></span></p>
<p><span>如果你在<span style="color: #2e6ab1;">Firebug</span>中查看你会发现丢失的背景图片位于子主题的image文件夹下，它本应存在于父主题的images文件夹下。</span></p>
<p><span>有一些方法或更多的途径来弥补这一问题，而最简单得要数直接复制父主题images文件夹到子主题目录下。刷新浏览器，现在子主题看起来与父主题完全一样了。</span></p>
<p> <br />
<span style="FONT-SIZE: medium"><span><img class="aligncenter size-medium wp-image-831" title="koobreek1-600x465" src="http://img.epile.org/e/2009/05/koobreek1-600x465-561x435.gif" alt="koobreek1-600x465" width="561" height="435" /></span></span></p>
<h3><span style="FONT-SIZE: medium">取代父主题样式</span></h3>
<p>现在让我们对子主题的样式做一些修改，将这些代码复制到子主题的style.css文件里。</p>
<p><strong>修改字体为Arial</strong></p>
<blockquote>
<ol class="dp-css">
<li class="alt"><span><span>body {   </span></span></li>
<li><span>    </span><span class="keyword">font-family</span><span>:</span><span class="string">Arial</span><span>, </span><span class="string">sans-serif</span><span>;   </span></li>
<li class="alt"><span>}  </span></li>
</ol>
</blockquote>
<p class="alt"><span><strong>修改标题字体为Arial，font-weight属性为normal</strong></span><strong>修改文章标题</strong></p>
<blockquote>
<ol>
<li>h1, h2, h3 {   font-family:Arial, sans-serif;  font-weight:normal;  }  </li>
</ol>
</blockquote>
<p><span><strong>修改头部背景</strong></span></p>
<p><span>我把蓝色的头部背景换成了黑色，并保存在子主题的images文件夹，并用以下的代码覆盖父主题的样式。</span></p>
<blockquote>
<ol>
<li class="alt"><span><span>.post h2 {   </span></span></li>
<li><span>    </span><span class="keyword">letter-spacing</span><span>:-</span><span class="string">1px</span><span>;   </span></li>
<li class="alt"><span>}   </span></li>
<li><span>  </span></li>
<li class="alt"><span>.post h3 {   </span></li>
<li><span>    </span><span class="keyword">font-weight</span><span>:</span><span class="string">bold</span><span>;   </span></li>
<li class="alt"><span>}  </span></li>
</ol>
</blockquote>
<p class="alt"><span><strong>修改侧边栏样式以及标题</strong></span></p>
<blockquote>
<ol>
<li>#sidebar h2 {  </li>
<li><span>    </span> font-family:Arial, sans-serif;  </li>
<li>     text-transform:uppercase;</li>
<li>     font-weight:bold;  </li>
<li>     color:#333;</li>
<li>     border-top:1px solid #333;</li>
<li>     padding-top:3px;  </li>
<li>     font-size:12px;   </li>
<li>  }      </li>
<li>#sidebar ul {</li>
<li>     font-family:Arial, sans-serif;</li>
<li>     font-size:11px;   </li>
<li>  }  </li>
</ol>
</blockquote>
<p><span>经过对子主题样式的一些更改，最后我们的主题是这样的：</span></p>
<p> <br />
<span style="FONT-SIZE: medium"><img class="aligncenter size-medium wp-image-833" title="koobreek2-600x465" src="http://img.epile.org/e/2009/05/koobreek2-600x465-561x435.gif" alt="koobreek2-600x465" width="561" height="435" /></span></p>
<h3><span><span style="FONT-SIZE: medium">取代父主题模板</span></span></h3>
<p><span>如果你需要对模板的结构做一定的修改？</span></p>
<p><span>答案是很容易。你只需要把你需要修改的模板文件从父主题文件夹复制到子主题文件夹。在Wordpress2.7以后，这样就会覆盖父主题的模板。</span></p>
<p><span>我不喜欢文章中metadate元数据的位置，我希望它在文章标题之下，日期之后。</span></p>
<p><span>为了做到这一点，我们从父主题文件夹复制index.php文件到子主题文件夹中。打开复制过来的index.php文件，替换17行的代码。</span></p>
<blockquote>
<ol>
<li class="alt"><span><span>&lt;small&gt;&lt;?php the_time(</span><span class="string">&#8216;F jS, Y&#8217;</span><span>) ?&gt; by &lt;?php the_author() ?&gt; Posted in &lt;?php the_category(</span><span class="string">&#8216;, &#8217;</span><span>) ?&gt; | &lt;?php edit_post_link(</span><span class="string">&#8216;Edit&#8217;</span><span>, </span><span class="string">&#8221;</span><span>, </span><span class="string">&#8216; | &#8217;</span><span>); ?&gt;  &lt;?php comments_popup_link(</span><span class="string">&#8216;No Comments &amp;#187;&#8217;</span><span>, </span><span class="string">&#8217;1 Comment &amp;#187;&#8217;</span><span>, </span><span class="string">&#8216;% Comments &amp;#187;&#8217;</span><span>); ?&gt;&lt;/small&gt;  </span></span></li>
</ol>
</blockquote>
<p class="alt"><span><span>然后删除23行的代码，因为它已经显示在17行了。刷新页面，你将看到文章的元数据和日期在标题下面。</span></span></p>
<p class="alt"><span><span><img class="aligncenter size-medium wp-image-832" title="koobreek3-600x465" src="http://img.epile.org/e/2009/05/koobreek3-600x465-561x435.gif" alt="koobreek3-600x465" width="561" height="435" /></span></span></p>
<p class="alt"> </p>
<h3 class="alt"><span><span><span style="FONT-SIZE: medium">总结</span></span></span></h3>
<p class="alt"><span><span>我们已经创建和修改一个新的主题，而不必修改父主题的文件，所做的修改只在子主题的文件夹里。欢迎随意下载<a rel="external nofollow" href="http://www.raymondselda.com/downloads/koobreek.zip"><span style="color: #2e6ab1;">koobreek.zip</span></a>。</span></span></p>
<p class="alt"><span><span>大量关于子主题的信息可以在<a rel="external nofollow" href="http://themeshaper.com/"><span style="color: #2e6ab1;">ThemeShaper</span></a>和<a rel="external nofollow" href="http://themehybrid.com/"><span style="color: #2e6ab1;">ThemeHybrid</span></a>获得。我希望子主题能帮助你加快你的工作流程，使主题开发更愉快。</span></span></p>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-theme-e-green.html" title="Wordpress新主题《新绿 E-Green》上线">Wordpress新主题《新绿 E-Green》上线</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-plugin-bug.html" title="Wordpress 2.8 冲突插件">Wordpress 2.8 冲突插件</a></li><li><a href="http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html" title="WordPress2.8自定义分类">WordPress2.8自定义分类</a></li><li><a href="http://epile.org/blog/html/wordpress-cms-plugins-pods.html" title="Wordpress CMS插件 Pods">Wordpress CMS插件 Pods</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html" title="Wordpress2.8 body_class()函数">Wordpress2.8 body_class()函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/harness-the-power-of-wordpress-child-themes.html/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>囧页面</title>
		<link>http://epile.org/blog/html/jiong-page.html</link>
		<comments>http://epile.org/blog/html/jiong-page.html#comments</comments>
		<pubDate>Thu, 21 May 2009 01:28:35 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[零散文章]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://epile.cn/blog/?p=810</guid>
		<description><![CDATA[昨晚博客首页有一分钟的时间出现了这样的页面，囧到我了~谁能告诉我到底是怎么回事？ 分别使用IE7和Chrome打开都是这样，基本排除了浏览器的问题。 我并没有使用缓存插件或静态化插件，所以也不是缓存问题。 要说数据库完全挂掉了，页面又能够显示页面标题、博客标题、博客副标题。 那时候到底发生了什么事？ PS：最近的互联网网络故障和Conficker蠕虫让中国的网速更慢了~我这个放在国内的博客居然延迟达到300ms以上了~而国外的空间延迟却在200ms以下。我汗。 “有人用dnspod放垃圾站&#8211;&#62; dnspod被攻击，流量太大 &#8211;&#62; dnspod所在机房被封IP &#8211;&#62; dnspod下的所有域名访问不了 &#8211;&#62; baofeng.com也访问不了 &#8211;&#62; 暴风客户端不断重试 &#8211;&#62; 国内所有的dns服务器都流量太大 &#8211;&#62; 全都瘫痪” 您可能还对以下内容感兴趣Wordpress新主题《新绿 E-Green》上线Wordpress 2.8 冲突插件WordPress2.8自定义分类Wordpress CMS插件 PodsWordpress2.8 body_class()函数]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-811" title="jiong-page" src="http://img.epile.org/e/2009/05/jiong-page.png" alt="jiong-page" width="580" height="470" /></p>
<p>昨晚博客首页有一分钟的时间出现了这样的页面，囧到我了~谁能告诉我到底是怎么回事？</p>
<ul>
<li>分别使用IE7和Chrome打开都是这样，基本排除了浏览器的问题。</li>
<li>我并没有使用缓存插件或静态化插件，所以也不是缓存问题。</li>
<li>要说数据库完全挂掉了，页面又能够显示页面标题、博客标题、博客副标题。</li>
</ul>
<p>那时候到底发生了什么事？</p>
<p>PS：最近的<a href="http://cnbeta.com/articles/84902.htm" target="_blank" rel="external nofollow">互联网网络故障</a>和<a href="http://cnbeta.com/articles/84786.htm" target="_blank" rel="external nofollow">Conficker</a>蠕虫让中国的网速更慢了~我这个放在国内的博客居然延迟达到300ms以上了~而国外的空间延迟却在200ms以下。我汗。</p>
<blockquote><p>“有人用dnspod放垃圾站&#8211;&gt; dnspod被攻击，流量太大 &#8211;&gt; dnspod所在机房被封IP &#8211;&gt; dnspod下的所有域名访问不了 &#8211;&gt; baofeng.com也访问不了 &#8211;&gt; 暴风客户端不断重试 &#8211;&gt; 国内所有的dns服务器都流量太大 &#8211;&gt; 全都瘫痪”</p></blockquote>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-theme-e-green.html" title="Wordpress新主题《新绿 E-Green》上线">Wordpress新主题《新绿 E-Green》上线</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-plugin-bug.html" title="Wordpress 2.8 冲突插件">Wordpress 2.8 冲突插件</a></li><li><a href="http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html" title="WordPress2.8自定义分类">WordPress2.8自定义分类</a></li><li><a href="http://epile.org/blog/html/wordpress-cms-plugins-pods.html" title="Wordpress CMS插件 Pods">Wordpress CMS插件 Pods</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html" title="Wordpress2.8 body_class()函数">Wordpress2.8 body_class()函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/jiong-page.html/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>换主题鸟~</title>
		<link>http://epile.org/blog/html/swift-to-new-wordpress-theme.html</link>
		<comments>http://epile.org/blog/html/swift-to-new-wordpress-theme.html#comments</comments>
		<pubDate>Sat, 02 May 2009 16:12:13 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[零散文章]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://epile.cn/blog/?p=748</guid>
		<description><![CDATA[Update.2010.02.28，留存主题截图。 今天终于把博客的主题换了。上次为了校友博客的主题搜索了上千个主题，意外地发现了Green Park 2这款漂亮的主题，界面和代码都挺不错的。不过作者更新得比较慢，Todo List还有许多期待的功能未完成，比如language files、Page order、About Page Setting。 在此特别感谢Slyar以精湛的代码功底帮我搞定了几个问题，在此发表一下感叹：“我好想绑架Slyar”~同时也感谢Jutoy帮忙对主题进行测试，并与我密谋折腾大S~ 大概是一个星期前决定更换主题的，并对主题做了如下的修改： 设计Favicon和Logo；(Favicon抽风中!) 界面汉化并修改Css以便更好地显示中文； 移植了INOVE主题的RSS订阅选项； 把分类加到顶部页面导航中； 使用插件：WP-RecentComments； 增加页面：专题； 分类页改成目录显示； 对正文图片溢出部分设置为隐藏； 存档页模板； 把Google Adsense设置为只向搜索引擎用户开放； 增加AD：HomeZZ美国虚拟主机； 还有一些功能想修改但还没完成，也有些对于我来说挺困难的~算是Todo List 主题控制面板； pagenavi 原生支持； 留言板模板； Widget：饭否； Widget：豆瓣； Ajax无刷新评论； 评论邮件回复； 有了这次的修改经验，决定开始鼓弄金中校友的网站，为期两个月，届时这套系统也用于紫藤网站。 您可能还对以下内容感兴趣Wordpress新主题《新绿 E-Green》上线Wordpress 2.8 冲突插件WordPress2.8自定义分类Wordpress CMS插件 PodsWordpress2.8 body_class()函数]]></description>
			<content:encoded><![CDATA[<p><a href="http://img.epile.org/e/2009/05/blog_green_park.png" target="_blank"><img class="aligncenter size-full wp-image-1234" title="blog_green_park_small" src="http://img.epile.org/e/2009/05/blog_green_park_small.jpg" alt="" width="580" height="418" /></a></p>
<p><span style="color: #ff0000;">Update.2010.02.28，留存主题截图。</span></p>
<p>今天终于把博客的主题换了。上次为了校友博客的主题搜索了上千个主题，意外地发现了<a rel="external nofollow" href="http://cordobo.com/green-park-2/" target="_blank">Green Park 2</a>这款漂亮的主题，界面和代码都挺不错的。不过作者更新得比较慢，Todo List还有许多期待的功能未完成，比如language files、Page order、About Page Setting。</p>
<p>在此特别感谢Slyar以精湛的代码功底帮我搞定了几个问题，在此发表一下感叹：“我好想绑架Slyar”~同时也感谢Jutoy帮忙对主题进行测试，并与我密谋折腾大S~</p>
<p>大概是一个星期前决定更换主题的，并对主题做了如下的修改：</p>
<ol>
<li>设计Favicon和Logo；<span style="color: #ff0000;">(Favicon抽风中!)</span></li>
<li>界面汉化并修改Css以便更好地显示中文；</li>
<li>移植了INOVE主题的RSS订阅选项；</li>
<li>把分类加到顶部页面导航中；</li>
<li>使用插件：WP-RecentComments；</li>
<li>增加页面：专题；</li>
<li>分类页改成目录显示；</li>
<li>对正文图片溢出部分设置为隐藏；</li>
<li>存档页模板；</li>
<li>把Google Adsense设置为只向搜索引擎用户开放；</li>
<li>增加AD：HomeZZ美国虚拟主机；</li>
</ol>
<p>还有一些功能想修改但还没完成，也有些对于我来说挺困难的~算是Todo List</p>
<ol>
<li>主题控制面板；</li>
<li>pagenavi 原生支持；</li>
<li>留言板模板；</li>
<li>Widget：饭否；</li>
<li>Widget：豆瓣；</li>
<li>Ajax无刷新评论；</li>
<li>评论邮件回复；</li>
</ol>
<p>有了这次的修改经验，决定开始鼓弄金中校友的网站，为期两个月，届时这套系统也用于紫藤网站。<br />
<img class="aligncenter size-full wp-image-749" title="金中校友网站目录结构" src="http://img.epile.org/e/2009/05/jinzhong.jpg" alt="金中校友网站目录结构" width="384" height="386" /></p>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-theme-e-green.html" title="Wordpress新主题《新绿 E-Green》上线">Wordpress新主题《新绿 E-Green》上线</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-plugin-bug.html" title="Wordpress 2.8 冲突插件">Wordpress 2.8 冲突插件</a></li><li><a href="http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html" title="WordPress2.8自定义分类">WordPress2.8自定义分类</a></li><li><a href="http://epile.org/blog/html/wordpress-cms-plugins-pods.html" title="Wordpress CMS插件 Pods">Wordpress CMS插件 Pods</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html" title="Wordpress2.8 body_class()函数">Wordpress2.8 body_class()函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/swift-to-new-wordpress-theme.html/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>小站也玩图片独立</title>
		<link>http://epile.org/blog/html/image-server.html</link>
		<comments>http://epile.org/blog/html/image-server.html#comments</comments>
		<pubDate>Fri, 24 Apr 2009 12:21:31 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[奇雅出品]]></category>
		<category><![CDATA[网络技术]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[图片服务器]]></category>

		<guid isPermaLink="false">http://epile.cn/blog/?p=729</guid>
		<description><![CDATA[平时瞧见大型网站拥有自己的图片服务器，偶们这种小博客站长是那样的羡慕啊，所以Epile没事就百度Google图片服务器的资料，小研究了一些，还是找到了一些曲折的方法可以让小站图片也来个独立，不过有些时候为了得瑟一下而独立反倒是牺牲了网站的性能。 先指名一些定义： 应用服务器：即我们的内容网站，就像我这个博客http://epile.org/blog/ 图片服务器：即存放图片的网站，就像我博客的图片存放在http://img.epile.org/ 方案一： 环境：应用服务器和图片服务器分别为两个不同的空间，应用服务器支持动态语言（如PHP）或可安装程序，图片服务器有独立的FTP； 方案：图片上传到应用服务器后，通过PHP或同步软件把图片同步到图片服务器，文章里采用图片的绝对路径； 好处：图片服务器只需要是静态服务器即可，减少了Cookie和PHP，效率会高一点； 缺点：需要写动态语言（如PHP）代码； 方案二： 环境：应用服务器和图片服务器为同一台服务器，空间支持子域名绑定或可建多网站； 方案：直接把图片服务器的域名绑定到图片目录，文章里采用图片的绝对路径； 好处：对于小网站来说很方便，基本不需要改动程序，像Wordpress只需绑定图片目录后在后台设置图片路径即可。本博客就是采用这种方法，图片服务器为img.epile.cn； 缺点：应用服务器和图片服务器必须为同一台服务器； 方案三： 环境：应用服务器和图片服务器均支持PHP； 方案：在图片服务器上架设图片程序，负责图片的上传并提供API接口，供文章系统调用； 好处：暂无； 缺点：需要写代码整合API，可能需要自己写图片程序； 方案四： 环境：应用服务器和图片服务器均支持PHP，图片服务器支持URL Rewrite； 方案：图片上传到应用服务器后，直接在文章中使用图片服务器的地址。图片服务器通过URL Rewrite把所有图片访问Rewrite到一个PHP文件，PHP文件在第一次访问的时候从应用服务器把图片Download到本地并显示给用户，以后直接读取本地。受Shawn的如何缓存Gravatar 至本地服务器所启发。 好处：代码简单，不需要更改文章系统； 缺点：每次访问图片都要运行PHP程序，牺牲图片服务器性能； 如果大家有新的方法，欢迎告知，让我们折腾我们的空间吧~Geek万岁~ 豆瓣九点认领：doubanclaimb280cbda63c0f0f2 您可能还对以下内容感兴趣Wordpress新主题《新绿 E-Green》上线Wordpress 2.8 冲突插件WordPress2.8自定义分类Wordpress CMS插件 PodsWordpress2.8 body_class()函数]]></description>
			<content:encoded><![CDATA[<p>平时瞧见大型网站拥有自己的图片服务器，偶们这种小博客站长是那样的羡慕啊，所以Epile没事就百度Google图片服务器的资料，小研究了一些，还是找到了一些曲折的方法可以让小站图片也来个独立，不过有些时候为了得瑟一下而独立反倒是牺牲了网站的性能。</p>
<p>先指名一些定义：</p>
<ul>
<li>应用服务器：即我们的内容网站，就像我这个博客<a href="http://epile.org/blog/">http://epile.org/blog/</a></li>
<li>图片服务器：即存放图片的网站，就像我博客的图片存放在<a href="http://img.epile.org/">http://img.epile.org/</a></li>
</ul>
<h3>方案一：</h3>
<ol>
<li>环境：<span style="color: #800000;">应用服务器</span>和<span style="color: #0000ff;">图片服务器</span>分别为两个不同的空间，<span style="color: #800000;">应用服务器</span>支持动态语言（如PHP）或可安装程序，<span style="color: #0000ff;">图片服务器</span>有独立的FTP；</li>
<li>方案：图片上传到<span style="color: #800000;">应用服务器</span>后，通过PHP或同步软件把图片同步到<span style="color: #ff0000;">图片服务器</span>，文章里采用图片的绝对路径；</li>
<li>好处：<span style="color: #800000;">图片服务器</span>只需要是静态服务器即可，减少了Cookie和PHP，效率会高一点；</li>
<li>缺点：需要写动态语言（如PHP）代码；</li>
</ol>
<h3>方案二：</h3>
<ol>
<li>环境：<span style="color: #800000;">应用服务器</span>和<span style="color: #0000ff;">图片服务器</span>为同一台服务器，空间支持子域名绑定或可建多网站；</li>
<li>方案：直接把<span style="color: #800000;">图片服务器</span>的域名绑定到图片目录，文章里采用图片的绝对路径；</li>
<li>好处：对于小网站来说很方便，基本不需要改动程序，像Wordpress只需绑定图片目录后在后台设置图片路径即可。本博客就是采用这种方法，图片服务器为img.epile.cn；</li>
<li>缺点：<span style="color: #800000;">应用服务器</span>和<span style="color: #0000ff;">图片服务器</span>必须为同一台服务器；</li>
</ol>
<h3>方案三：</h3>
<ol>
<li>环境：<span style="color: #800000;">应用服务器</span>和<span style="color: #0000ff;">图片服务器<span style="color: #000000;">均</span></span>支持PHP；</li>
<li>方案：在<span style="color: #0000ff;">图片服务器</span>上架设图片程序，负责图片的上传并提供API接口，供文章系统调用；</li>
<li>好处：暂无；</li>
<li>缺点：需要写代码整合API，可能需要自己写图片程序；</li>
</ol>
<h3>方案四：</h3>
<ol>
<li>环境：<span style="color: #800000;">应用服务器</span>和<span style="color: #0000ff;">图片服务器<span style="color: #000000;">均</span></span>支持PHP，图片服务器支持URL Rewrite；</li>
<li>方案：图片上传到<span style="color: #800000;">应用服务器</span>后，直接在文章中使用图片服务器的地址。<span style="color: #0000ff;">图片服务器</span>通过URL Rewrite把所有图片访问Rewrite到一个PHP文件，PHP文件在第一次访问的时候从<span style="color: #800000;">应用服务器</span>把图片Download到本地并显示给用户，以后直接读取本地。受Shawn的<a href="http://ishawn.net/my-blog-related/cache-gravatar-into-local-server.html" target="_blank" rel="external nofollow">如何缓存Gravatar 至本地服务器</a>所启发。</li>
<li>好处：代码简单，不需要更改文章系统；</li>
<li>缺点：每次访问图片都要运行PHP程序，牺牲<span style="color: #0000ff;">图片服务器</span>性能；</li>
</ol>
<p>如果大家有新的方法，欢迎告知，让我们折腾我们的空间吧~Geek万岁~</p>
<p>豆瓣九点认领：doubanclaimb280cbda63c0f0f2</p>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-theme-e-green.html" title="Wordpress新主题《新绿 E-Green》上线">Wordpress新主题《新绿 E-Green》上线</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-plugin-bug.html" title="Wordpress 2.8 冲突插件">Wordpress 2.8 冲突插件</a></li><li><a href="http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html" title="WordPress2.8自定义分类">WordPress2.8自定义分类</a></li><li><a href="http://epile.org/blog/html/wordpress-cms-plugins-pods.html" title="Wordpress CMS插件 Pods">Wordpress CMS插件 Pods</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html" title="Wordpress2.8 body_class()函数">Wordpress2.8 body_class()函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/image-server.html/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>WordPress自带编辑器造成博客页面错误</title>
		<link>http://epile.org/blog/html/wordpress-bug.html</link>
		<comments>http://epile.org/blog/html/wordpress-bug.html#comments</comments>
		<pubDate>Sat, 05 Jan 2008 10:53:20 +0000</pubDate>
		<dc:creator>Epile</dc:creator>
				<category><![CDATA[零散文章]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://epile.cn/blog/wordpress-bug/</guid>
		<description><![CDATA[近来发现博客上面文字大小不一，检查了三天，期间得到映洲兄和江东兄的热情帮助，终于找到错误所在。 编辑器有时候会在图片两边加上 &#60;h4&#62;&#60;/h4&#62;标记，&#60;!&#8211;more&#8211;&#62;两边加上&#60;span xml:lang=&#8221;en-us&#8221; lang=&#8221;en-us&#8221;&#62;&#60;/span&#62;，造成html标记未关闭，所以产生错误。 很高兴又长见识了，也辛苦各位看官，最近博客的字实在太大了！ 您可能还对以下内容感兴趣Wordpress新主题《新绿 E-Green》上线Wordpress 2.8 冲突插件WordPress2.8自定义分类Wordpress CMS插件 PodsWordpress2.8 body_class()函数]]></description>
			<content:encoded><![CDATA[<p>近来发现博客上面文字大小不一，检查了三天，期间得到映洲兄和<a rel="external nofollow" href="http://www.storyday.com" target="_blank">江东兄</a>的热情帮助，终于找到错误所在。</p>
<p>编辑器有时候会在图片两边加上 &lt;h4&gt;&lt;/h4&gt;标记，&lt;!&#8211;more&#8211;&gt;两边加上&lt;span xml:lang=&#8221;en-us&#8221; lang=&#8221;en-us&#8221;&gt;&lt;/span&gt;，造成html标记未关闭，所以产生错误。</p>
<p>很高兴又长见识了，也辛苦各位看官，最近博客的字实在太大了！</p>
<h3  class="related_post_title">您可能还对以下内容感兴趣</h3><ul class="related_post"><li><a href="http://epile.org/blog/html/wordpress-theme-e-green.html" title="Wordpress新主题《新绿 E-Green》上线">Wordpress新主题《新绿 E-Green》上线</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-plugin-bug.html" title="Wordpress 2.8 冲突插件">Wordpress 2.8 冲突插件</a></li><li><a href="http://epile.org/blog/html/custom-taxonomies-in-wordpress-28.html" title="WordPress2.8自定义分类">WordPress2.8自定义分类</a></li><li><a href="http://epile.org/blog/html/wordpress-cms-plugins-pods.html" title="Wordpress CMS插件 Pods">Wordpress CMS插件 Pods</a></li><li><a href="http://epile.org/blog/html/wordpress-2-8-and-the-body_class-function.html" title="Wordpress2.8 body_class()函数">Wordpress2.8 body_class()函数</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://epile.org/blog/html/wordpress-bug.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
