<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/WP_at_BC" type="application/rss+xml" ref="self"></atom:link><fs:self_link href="http://feed.feedsky.com/WP_at_BC" type="application/rss+xml"></fs:self_link><lastBuildDate>Fri, 25 Jul 2008 15:12:41 GMT</lastBuildDate><title>Becomin' Charles</title><description>Everything about WordPress</description><image><url>http://www.feedsky.com/feed/WP_at_BC/sc/gif</url><title>Becomin' Charles</title><link>http://www.charlestang.cn</link></image><link>http://www.charlestang.cn</link><language>en</language><pubDate>Fri, 25 Jul 2008 15:22:42 GMT</pubDate><dc:date>2008-07-25T15:22:42Z</dc:date><dc:language>en</dc:language><item><title>让WordPress 2.6正确统计中文字数</title><link>http://item.feedsky.com/~feedsky/WP_at_BC/~7034722/97786479/5142671/1/item.html</link><content:encoded>&lt;p&gt;从&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt; 2.6版本开始，后台撰写日志的界面带有了字数统计功能。不过呢，我发现，这个字数统计功能，计算出来的数字非常的不靠谱。&lt;/p&gt;
&lt;p&gt;打开代码看了看，原理不是很复杂，就自己动手给改了。效果如下：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://picasaweb.google.com/TangChao.ZJU/Illustration/photo#5226964803199835186&quot;&gt;&lt;img src=&quot;http://lh3.ggpht.com/TangChao.ZJU/SInoy3wyHDI/AAAAAAAAAew/BCzvB33J4FA/s400/chinese-wordcount.png&quot; style=&quot;border:none&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;我将这个小小的修正写成了插件，明白原理的同学，直接看代码决定怎么处置，不明白的同学，下载我写的插件，启用即可。&lt;/p&gt;
&lt;p&gt;不多说什么了，如果有需要，我可以在系列文章里面介绍。&lt;/p&gt;
&lt;h3&gt;中文字数统计插件&lt;/h3&gt;
&lt;p&gt;功能：&lt;strong&gt;正确统计中文字数，连带统计英文单词数（注意不是字母数）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;用法：下载——解压——上传到插件目录——启用——OK&lt;/p&gt;
&lt;p&gt;下载链接：&lt;/p&gt;
&lt;p&gt;http://www.charlestang.cn/downdown/chinese-wordcount.zip&lt;/p&gt;
&lt;p&gt;P.S. 好像还是有误差的，但是比较靠谱了，如本文267字，有兴趣数数^_^？&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/?p=158&amp;amp;akst_action=share-this&quot;  title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_158&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/a&gt;
&lt;/p&gt;
	标签：&lt;a href=&quot;http://www.charlestang.cn/tags/plugins&quot; title=&quot;plugins&quot; rel=&quot;tag nofollow&quot;&gt;plugins&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; title=&quot;WordPress&quot; rel=&quot;tag nofollow&quot;&gt;WordPress&lt;/a&gt;&lt;br /&gt;</content:encoded><wfw:commentRss>http://www.charlestang.cn/chinese-wordcount.htm/feed</wfw:commentRss><description>从WordPress 2.6版本开始，后台撰写日志的界面带有了字数统计功能。不过呢，我发现，这个字数统计功能，计算出来的数字非常的不靠谱。
打开代码看了看，原理不是很复杂，就自己动手给改了。效果如下：

我将这个小小的修正写成了插件，明白原理的同学，直接看代码决定怎么处置，不明白的同学，下载我写的插件，启用即可。
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/chinese-wordcount.htm&quot; title=&quot;让WordPress 2.6正确统计中文字数&quot; target=&quot;_blank&quot;&gt;阅读全文——共342字&lt;/a&gt;&lt;/span&gt;</description><category>plugins</category><category>WordPress</category><pubDate>Fri, 25 Jul 2008 23:12:41 +0800</pubDate><author>Charles</author><comments>http://www.charlestang.cn/chinese-wordcount.htm#comments</comments><guid isPermaLink="false">http://www.charlestang.cn/?p=158</guid><dc:creator>Charles</dc:creator><fs:srclink>http://www.charlestang.cn/chinese-wordcount.htm</fs:srclink><fs:srcfeed>http://www.charlestang.cn/cata/wp/feed/</fs:srcfeed><fs:itemid>feedsky/WP_at_BC/~7034722/97786479/5142671</fs:itemid></item><item><title>WordPress插件开发实例--（01）</title><link>http://item.feedsky.com/~feedsky/WP_at_BC/~7034722/97620968/5142671/1/item.html</link><content:encoded>&lt;p&gt;很多朋友来我这里，可能真的会很失望了，因为——看不懂！囧。相信我，我如果写每个人能看懂的东西，那真的是很难看的，你们看我侧栏上的热门文章列表，还是以技术文章居多，就说明了一个问题，我写技术文章还对很少数的人能有所助益，我如果写大众化的文章，那就是完全的废物了。&lt;/p&gt;
&lt;p&gt;所以，我宁愿读者少一点，也不愿做个没用的人。&lt;/p&gt;
&lt;p&gt;现在，技术书籍的市场上，蔓延着一种浮躁的风气，经典的书不多，大都是些媚俗的技术书籍，《XXXX实例教程》就是一大类，说到这里，你就发现了，我在技术文章领域是媚俗的。这类书籍永远不会放在书架上长久保存，看过就扔，看过的人马上会意识到，这是没有价值的书。但是，这类书，还是可以让入门级选手有个感性认识的。考虑到博客文章本身的特点，比如时效性，片面性，博客还是比较适合发表这类文章的。&lt;/p&gt;
&lt;p&gt;经典文章由大师来写，这种看过就算的文章，就由我来写吧。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-150&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;此系列文章，又是一个漫漫长征路，因为，我的计划又是很宏伟壮阔的，这也符合我的性格——虎头蛇尾。关注这个系列的文章，你将会看到许多插件的运行原理，一部分插件的编写过程，构思过程，实际编码过程，调试过程，发布过程等等。我的理想是很伟大的——看过此系列，插件开发不再神秘，人人皆可动手。&lt;/p&gt;
&lt;h3&gt;Add Bottem Info&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://picasaweb.google.com/TangChao.ZJU/Illustration/photo#5226800482370676210&quot;&gt;&lt;img src=&quot;http://lh5.ggpht.com/TangChao.ZJU/SIlTWI-LZfI/AAAAAAAAAeQ/-Qt5QGOk5P0/s400/add-bottom-info.png&quot; style=&quot;border:none&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;大家在我的帖子也底部，应该会看到一个灰色的方框，里面显示了文章的标题，还有永久链接，版权声明等等东西，今天，要分析的实例，就是这个。&lt;/p&gt;
&lt;p&gt;在文章中加入版权信息，可以保护自己的版权。当然，这个东西不光是加入版权信息，还可以加入各类讯息，只要你往里写就行。添加这一类的信息，有多种办法，最傻的，每篇文章写一个，很汗。然后是稍微好点的，写在模板里面，single.php，但是呢，换模板就不行了，又要重来，而且不懂HTML，PHP是比较困难的。最后，就是用插件，不但可以一劳永逸，而且，还可以给别人分享，以上呢，就是插件的成因了。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;是一个事件触发的系统，我们写插件基本上依赖的也是&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;内部的事件来触发我们自定义的动作。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;事件，能够触发两种动作，一种，就叫动作（Action），就是说某件事情发生了，能诱发一个动作，些插件的时候，你就可以在这个动作发生的时候，做一些自定义的事情。&lt;/p&gt;
&lt;p&gt;另一种呢，叫做过滤器（Filter），就是说某件事情发生的时候，诱发一个动作的同时，把相关的数据都传送过来，允许你对数据进行过滤，变更等。&lt;/p&gt;
&lt;p&gt;看过源代码的都知道，这两者的实现机制其实是一模一样的，具体运行的代码都是同一段代码，所以说，&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;插件一般选用两种中的一种来进行开发，但是并非非得用其中一种，就不能用另一种实现。其选择原则，一半就是方便，符合逻辑，好理解，易管理。&lt;/p&gt;
&lt;p&gt;然后来看看这个插件的本质是什么，就是在显示文章信息的时候，后面附加一段文字。自然而然的，我们想到了过滤器，将文章读入，然后附加一段文字，再把修改后的东西输出。（当然，你硬是要用Action来做这个事情也没什么不可以，这个就当成读者自己思考的题目吧，用Action怎么做这个事情呢？）&lt;/p&gt;
&lt;p&gt;好了，既然知道了是要用一个能过滤文章内容的Filter，那么我们就去把它找出来吧。到哪里找呢？&lt;/p&gt;
&lt;p&gt;http://codex.&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;wordpress&lt;/a&gt;.org/Plugin_API/Filter_Reference&lt;/p&gt;
&lt;p&gt;没错，正是官方文档。这不是最好的找寻之处，最好的在源代码里。但是这是最方便的。足够用来开发插件了。&lt;/p&gt;
&lt;p&gt;我们知道了要用的这个过滤器叫做the_content。&lt;/p&gt;
&lt;p&gt;然后，我们就要动手开发了。（有些东西不想重复说了，就是一些ABC，可以看看&lt;a href=&quot;http://www.charlestang.cn/wordpress-plugin-api.htm&quot;&gt;插件开发API&lt;/a&gt;，那是我翻译的文档。）&lt;/p&gt;
&lt;p&gt;首先，准备好要插入的文字，可以先用个普通网页把东西调试好，然后，写成字符串的模样。&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;div class=&quot;hl-main&quot;&gt;&lt;span style=&quot;color: Blue;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$bottem_string&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; = &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;&amp;lt;div class=&amp;quot;bottominfo&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$bottem_string&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; .= &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;&amp;lt;p&amp;gt;作者：&amp;lt;a href=&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;get_the_author_url&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;get_the_author&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$bottem_string&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; .= &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;&amp;lt;p&amp;gt;原文链接：&amp;lt;a href=&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;get_permalink&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;get_the_ID&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;get_the_title&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$bottem_string&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; .= &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;get_bloginfo&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;siteurl&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;&amp;quot;&amp;gt;《&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;get_bloginfo&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;》&amp;lt;/a&amp;gt;版权所有，转载时必须以链接形式注明作者和原始出处及本声明。&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$bottem_string&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; .= &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;就像上面的样子。&lt;/p&gt;
&lt;p&gt;然后，我们来写一个函数，把这些东西放进去。&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;div class=&quot;hl-main&quot;&gt;&lt;span style=&quot;color: Blue;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;add_info&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$content&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;在这里放上上面的那些串，然后进行连接操作&lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;函数内部的东西，我就不赘述了，要做的就是将上面的串，连接到content后面。&lt;/p&gt;
&lt;p&gt;最后，就是将这个过滤器，跟the_content这个Filter挂钩（Hook）。&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;div class=&quot;hl-main&quot;&gt;&lt;span style=&quot;color: Blue;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;add_filter&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;the_content&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;add_info&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;1000&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;到此，一个插件，就算完成了，你看到这里，完全可以自己动手试试看的。&lt;/p&gt;
&lt;p&gt;当然，一个插件的完成，还需要考虑一些因素的，以后再找机会说吧，感兴趣，你可以从代码里看。&lt;/p&gt;
&lt;p&gt;插件下载&lt;/p&gt;
&lt;p&gt;http://www.charlestang.cn/downdown/add-bottom-info.rar&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/?p=150&amp;amp;akst_action=share-this&quot;  title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_150&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/a&gt;
&lt;/p&gt;
	标签：&lt;a href=&quot;http://www.charlestang.cn/tags/develop&quot; title=&quot;develop&quot; rel=&quot;tag nofollow&quot;&gt;develop&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/plugins&quot; title=&quot;plugins&quot; rel=&quot;tag nofollow&quot;&gt;plugins&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; title=&quot;WordPress&quot; rel=&quot;tag nofollow&quot;&gt;WordPress&lt;/a&gt;&lt;br /&gt;</content:encoded><wfw:commentRss>http://www.charlestang.cn/real-wp-plugins-01.htm/feed</wfw:commentRss><description>很多朋友来我这里，可能真的会很失望了，因为——看不懂！囧。相信我，我如果写每个人能看懂的东西，那真的是很难看的，你们看我侧栏上的热门文章列表，还是以技术文章居多，就说明了一个问题，我写技术文章还对很少数的人能有所助益，我如果写大众化的文章，那就是完全的废物了。
所以，我宁愿读者少一点，也不愿做个没用的人。
现在，技术书籍的市场上，蔓延着一种浮躁的风气，经典的书不多，大都是些媚俗的技术书籍，《XXXX实例教程》就是一大类，说到这里，你就发现了，我在技术文章领域是媚俗的。这类书籍永远不会放在书架上长久保存，看过就扔，看过的人马上会意识到，这是没有价值的书。但是，这类书，还是可以让入门级选手有个感性认识的。考虑到博客文章本身的特点，比如时效性，片面性，博客还是比较适合发表这类文章的。
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/real-wp-plugins-01.htm&quot; title=&quot;WordPress插件开发实例--（01）&quot; target=&quot;_blank&quot;&gt;阅读全文——共1775字&lt;/a&gt;&lt;/span&gt;</description><category>plugins</category><category>develop</category><category>WordPress</category><pubDate>Fri, 25 Jul 2008 12:47:10 +0800</pubDate><author>Charles</author><comments>http://www.charlestang.cn/real-wp-plugins-01.htm#comments</comments><guid isPermaLink="false">http://www.charlestang.cn/?p=150</guid><dc:creator>Charles</dc:creator><fs:srclink>http://www.charlestang.cn/real-wp-plugins-01.htm</fs:srclink><fs:srcfeed>http://www.charlestang.cn/cata/wp/feed/</fs:srcfeed><fs:itemid>feedsky/WP_at_BC/~7034722/97620968/5142671</fs:itemid></item><item><title>WordPress到底在整啥？—(09)</title><link>http://item.feedsky.com/~feedsky/WP_at_BC/~7034722/97620969/5142671/1/item.html</link><content:encoded>&lt;p&gt;依旧续上一篇，仍然是函数参考&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-112&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#maybe_unserialize&quot;&gt;maybe_unserialize( $original )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#mysql2date&quot;&gt;mysql2date( $dateformatstring, $mysqlstring, $translate = true )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#nocache_headers&quot;&gt;nocache_headers()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#number_format_i18n&quot;&gt;number_format_i18n( $number, $decimals = null )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#path_is_absolute&quot;&gt;path_is_absolute( $path )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#path_join&quot;&gt;path_join( $base, $path )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#remove_query_arg&quot;&gt;remove_query_arg( $key, $query=FALSE )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#require_wp_db&quot;&gt;require_wp_db()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#size_format&quot;&gt;size_format( $bytes, $decimals = null )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#smilies_init&quot;&gt;smilies_init()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#status_header&quot;&gt;status_header( $header )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#update_option&quot;&gt;update_option( $option_name, $newvalue )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#wp&quot;&gt;wp( $query_vars = '' )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#wp_check_filetype&quot;&gt;wp_check_filetype( $filename, $mimes = null )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#wp_die&quot;&gt;wp_die( $message, $title = '' )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#wp_explain_nonce&quot;&gt;wp_explain_nonce( $action )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#wp_ext2type&quot;&gt;wp_ext2type( $ext )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#wp_get_http&quot;&gt;wp_get_http( $url, $file_path = false, $red = 1 )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#wp_get_http_headers&quot;&gt;wp_get_http_headers( $url, $red = 1 )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#wp_get_original_referer&quot;&gt;wp_get_original_referer()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span id=&quot;maybe_unserialize&quot;&gt;&lt;strong&gt;maybe_unserialize&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;反串行化。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;mysql2date&quot;&gt;&lt;strong&gt;mysql2date&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数还是很有用的，可以根据指定的格式来翻译日期字符串，php自己倒是也有日期翻译的函数，这个函数不过是在外面包裹了一层，实现了对于不同语言的日期字符串翻译。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;nocache_headers&quot;&gt;&lt;strong&gt;nocache_headers&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数发送了一个不让浏览器缓存的header。这里很好玩，我看到了一句注释：&lt;br /&gt;
why are these @-silenced when other header calls aren't?&lt;br /&gt;
这也是我想问的，呵呵。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;number_format_i18n&quot;&gt;&lt;strong&gt;number_format_i18n&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;返回一个格式化的数字串。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;path_is_absolute&quot;&gt;&lt;strong&gt;path_is_absolute&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;判断一个路径是否是绝对路径。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;path_join&quot;&gt;&lt;strong&gt;path_join&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;连接两个路径，处理好了中间斜杠的数量。原来php有这种可以trim任意字符的函数啊。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;remove_query_arg&quot;&gt;&lt;strong&gt;remove_query_arg&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;从一个querystring中移除一个或者数个键值对。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;require_wp_db&quot;&gt;&lt;strong&gt;require_wp_db&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数在会在WP中引入DB类对象，这里我们其实可以看出，WP还是给其他类型的数据库留了接口的，你完全可以自己实现一个dp.php然后放杂wp-content目录下面，不过现在到底有没有使用别的数据库系统的wp呢？&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;size_format&quot;&gt;&lt;strong&gt;size_format&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;humen readable filesize generate。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;smilies_init&quot;&gt;&lt;strong&gt;smilies_init&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数很有意思的，有一个全局变量叫做$wpsmiliestrans，这个变量里面存储了wp里面默认表情的符号，和图片的对应关系，其实，一直以来，我都觉得这个东西很有问题，这套默认的表情系统与汉字这样的多字节语言的结合不是很好。我在给别人留言的时候，那个表情符号起始的冒号前面必须有一个空格，如果没有，表情图片就不能正确翻译，这真的是让我很困扰，难道就不能换成别的字符码？其实看了sohu（用的shortcode样式），新浪（用的是斜杠），他们的表情翻译系统都工作良好，wp不能在这里有所改进么？&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;status_header&quot;&gt;&lt;strong&gt;status_header&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;此函数和get_status_header_desc是一对，向浏览器发送一个带有HTTP状态的header。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;update_option&quot;&gt;&lt;strong&gt;update_option&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;又是一个option系列函数中的一员。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;wp&quot;&gt;&lt;strong&gt;wp&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数，本质上就是WP的主函数，这个函数会在wp-blog-header.php中被调用，此函数内部，也调用了WP的main函数，这也放到以后去看吧。当此函数返回的时候，所有的一切就已经准备好了，也就到了装载模板的时候了。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;wp_check_filetype&quot;&gt;&lt;strong&gt;wp_check_filetype&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;该函数接受参数为一个文件名，返回的是一个数组，该数组包括两个字符串，一个是扩展名，一个是相对应的MIME类型串。估计是在处理附件的时候使用的函数。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;wp_die&quot;&gt;&lt;strong&gt;wp_die&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数也比较眼熟，前面也遇到过了，调用这个函数，可以显示一个能展示wp出错信息的页面，并且是wp中止运行。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;wp_explain_nonce&quot;&gt;&lt;strong&gt;wp_explain_nonce&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数很搞笑，是一大堆操作失败的提示，暂时还不知道是用在哪里的。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;wp_ext2type&quot;&gt;&lt;strong&gt;wp_ext2type&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;从扩展名判断文件类型的函数。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;wp_get_http&quot;&gt;&lt;strong&gt;wp_get_http&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;哇哈哈，又见递归函数啊，此函数从一个给定的url获取文件，然后将取到的文件写入到参数中指定的文件里面。如果参数中不给出可写的文件，那么该函数会发送一个HTTP HEAD。如果访问的url被重定向，如301或302，那么就递归地重复过程。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;wp_get_http_headers&quot;&gt;&lt;strong&gt;wp_get_http_headers&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;就是上面一个函数，只不过省掉了文件名这个参数。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;wp_get_original_referer&quot;&gt;&lt;strong&gt;wp_get_original_referer&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数没有看得很明白，估计以后还会遇到吧。嘿嘿&lt;/p&gt;
&lt;p&gt;===============&lt;br /&gt;
今天就到这里了~&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/?p=112&amp;amp;akst_action=share-this&quot;  title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_112&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/a&gt;
&lt;/p&gt;
	标签：&lt;a href=&quot;http://www.charlestang.cn/tags/code-reading&quot; title=&quot;code reading&quot; rel=&quot;tag nofollow&quot;&gt;code reading&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; title=&quot;WordPress&quot; rel=&quot;tag nofollow&quot;&gt;WordPress&lt;/a&gt;&lt;br /&gt;</content:encoded><wfw:commentRss>http://www.charlestang.cn/inside-wordpress-09.htm/feed</wfw:commentRss><description>依旧续上一篇，仍然是函数参考


maybe_unserialize( $original )
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/inside-wordpress-09.htm&quot; title=&quot;WordPress到底在整啥？—(09)&quot; target=&quot;_blank&quot;&gt;阅读全文——共2062字&lt;/a&gt;&lt;/span&gt;</description><category>code reading</category><category>WordPress</category><pubDate>Thu, 24 Jul 2008 10:48:45 +0800</pubDate><author>Charles</author><comments>http://www.charlestang.cn/inside-wordpress-09.htm#comments</comments><guid isPermaLink="false">http://www.charlestang.cn/?p=112</guid><dc:creator>Charles</dc:creator><fs:srclink>http://www.charlestang.cn/inside-wordpress-09.htm</fs:srclink><fs:srcfeed>http://www.charlestang.cn/cata/wp/feed/</fs:srcfeed><fs:itemid>feedsky/WP_at_BC/~7034722/97620969/5142671</fs:itemid></item><item><title>WordPress到底在整啥？—(08)</title><link>http://item.feedsky.com/~feedsky/WP_at_BC/~7034722/97620970/5142671/1/item.html</link><content:encoded>&lt;p&gt;续上一篇，继续函数参考&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-111&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#do_enclose&quot;&gt;do_enclose( $content, $post_ID )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#do_feed&quot;&gt;do_feed()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#do_feed_atom&quot;&gt;do_feed_atom( $for_comments )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#do_feed_rdf&quot;&gt;do_feed_rdf()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#do_feed_rss&quot;&gt;do_feed_rss()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#do_feed_rss2&quot;&gt;do_feed_rss2( $for_comments )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#do_robots&quot;&gt;do_robots()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#form_option&quot;&gt;form_option( $option )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#get_alloptions&quot;&gt;get_alloptions()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#get_num_queries&quot;&gt;get_num_queries()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#get_option&quot;&gt;get_option( $setting )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#get_status_header_desc&quot;&gt;get_status_header_desc( $code )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#get_weekstartend&quot;&gt;get_weekstartend( $mysqlstring, $start_of_week = '' )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#is_blog_installed&quot;&gt;is_blog_installed()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#is_lighttpd_before_150&quot;&gt;is_lighttpd_before_150()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#is_new_day&quot;&gt;is_new_day()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#is_serialized&quot;&gt;is_serialized( $data )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#is_serialized_string&quot;&gt;is_serialized_string( $data )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#make_url_footnote&quot;&gt;make_url_footnote( $content )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#maybe_serialize&quot;&gt;maybe_serialize( $data )&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span id=&quot;do_enclose&quot;&gt;&lt;strong&gt;do_enclose&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;很老实地说，目前还没有看懂这个函数呢！！&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;do_feed&quot;&gt;&lt;strong&gt;do_feed&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;嘿嘿，这个函数真的是非常好玩啊，让我终于找到了以前一直想做但是没有做成的一个功能的方法。这个函数包括下面4个do_feed_xxx函数，是一组，就写这么一段吧。这个函数，揭示了wp输出feed的方法，首先，从query string中提取出关于feed的那个变量，然后，用此变量生成一个hook，检查这个hook是否存在，如果不存在，则wp_die，如果存在，则触发action。&lt;/p&gt;
&lt;p&gt;我举个例子吧，比如要访问我的feed：&lt;/p&gt;
&lt;p&gt;http://www.charlestang.cn/?feed=rss2&lt;/p&gt;
&lt;p&gt;然后，do_feed被调用，然后wp得到了需要的类型“rss2”。&lt;/p&gt;
&lt;p&gt;接着，生成一个hook名称叫做“do_feed_rss2”，然后检查这个hook是否存在（当然存在了！就在下面）。&lt;/p&gt;
&lt;p&gt;然后，触发action do_feed_rss2。（这个action是在default-filters.php里面添加的）&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;do_feed_atom&quot;&gt;&lt;strong&gt;do_feed_atom&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;do_feed_rdf&quot;&gt;&lt;strong&gt;do_feed_rdf&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;do_feed_rss&quot;&gt;&lt;strong&gt;do_feed_rss&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;do_feed_rss2&quot;&gt;&lt;strong&gt;do_feed_rss2&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;do_robots&quot;&gt;&lt;strong&gt;do_robots&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数呢，我在这里大胆猜测一下它的功能吧，记得安装WP的时候，让大家选择是否允许google，百度等搜索引擎索引你的博客，这个“允许”，或者“不允许”，就是使用robots.txt这个东西来实现的，具体的使用方法，可以参看http://www.robotstxt.org/，其实，使用wp博客，设定比较合理的robots.txt也是比较重要的，也是seo的一个方面。至于如何设定，其实有个捷径，就是找到你心目中的牛博，直接抄它的robots.txt就OK啦，嘿嘿，够坏吧。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;form_option&quot;&gt;&lt;strong&gt;form_option&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;没看明白这个是干啥的，只有一行，信息太少了。以后再说。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;get_alloptions&quot;&gt;&lt;strong&gt;get_alloptions&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;取得所有的option。这个应该归入option系列函数的一类，以后专门分析吧。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;get_num_queries&quot;&gt;&lt;strong&gt;get_num_queries&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;用在模板里面，用来显示一种执行了多少次query的一个函数，直接打印出来。不过呢，这个query数量一定是要使用wpdb对象执行的才行哦~~&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;get_option&quot;&gt;&lt;strong&gt;get_option&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;option系列函数。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;get_status_header_desc&quot;&gt;&lt;strong&gt;get_status_header_desc&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数里面提供了一个http状态编号对应的含义的列表，可以用来查询http状态。后面有一个status_header函数会调用这个函数，差不多是整个wp仅有地调用这个函数的函数。用来查询状态文字，然后作为header发送给agent。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;get_weekstartend&quot;&gt;&lt;strong&gt;get_weekstartend&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;又是一个只用到一次的函数，在wp-get_archives里面调用的。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;is_blog_installed&quot;&gt;&lt;strong&gt;is_blog_installed&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;通过在数据库里面查询来判断是否安装。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;is_lighttpd_before_150&quot;&gt;&lt;strong&gt;is_lighttpd_before_150&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;对服务器版本的判定&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;is_new_day&quot;&gt;&lt;strong&gt;is_new_day&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;超简单的一个函数，不过没看出是干啥用的。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;is_serialized&quot;&gt;&lt;strong&gt;is_serialized&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;判断一个变量的内容是否已经串行化，很多正则，没有看懂。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;is_serialized_string&quot;&gt;&lt;strong&gt;is_serialized_string&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;同上。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;make_url_footnote&quot;&gt;&lt;strong&gt;make_url_footnote&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数可是很好玩的哦，可以把文章中所有的超链接都转变成脚注。目前只有the_content_rss里面调用过这个函数，不过，据我所见的，还没有人通过参数启用这个功能。奇怪的东西真多，这里面有个抽取链接的正则表达式，倒是可以摘抄一下，不错。&lt;br /&gt;
'/&amp;lt;a(.+?)href=\&quot;(.+?)\&quot;(.*?)&amp;gt;(.+?)&amp;lt;\/a&amp;gt;/'&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;maybe_serialize&quot;&gt;&lt;strong&gt;maybe_serialize&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个是wp用到的串行化函数，如果本身是string，这个函数，就trim一下，如果本身是数组或者对象，这个函数调用serialize方法，最奇怪的是，如果参数本身已经是经过串行化的，还是会调用一次serialize方法，这个就非我所能懂了，记录一下吧。&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/?p=111&amp;amp;akst_action=share-this&quot;  title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_111&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/a&gt;
&lt;/p&gt;
	标签：&lt;a href=&quot;http://www.charlestang.cn/tags/code-reading&quot; title=&quot;code reading&quot; rel=&quot;tag nofollow&quot;&gt;code reading&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; title=&quot;WordPress&quot; rel=&quot;tag nofollow&quot;&gt;WordPress&lt;/a&gt;&lt;br /&gt;</content:encoded><wfw:commentRss>http://www.charlestang.cn/inside-wordpress-08.htm/feed</wfw:commentRss><description>续上一篇，继续函数参考


do_enclose( $content, $post_ID )
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/inside-wordpress-08.htm&quot; title=&quot;WordPress到底在整啥？—(08)&quot; target=&quot;_blank&quot;&gt;阅读全文——共2031字&lt;/a&gt;&lt;/span&gt;</description><category>code reading</category><category>WordPress</category><pubDate>Mon, 14 Jul 2008 12:34:04 +0800</pubDate><author>Charles</author><comments>http://www.charlestang.cn/inside-wordpress-08.htm#comments</comments><guid isPermaLink="false">http://www.charlestang.cn/?p=111</guid><dc:creator>Charles</dc:creator><fs:srclink>http://www.charlestang.cn/inside-wordpress-08.htm</fs:srclink><fs:srcfeed>http://www.charlestang.cn/cata/wp/feed/</fs:srcfeed><fs:itemid>feedsky/WP_at_BC/~7034722/97620970/5142671</fs:itemid></item><item><title>WordPress到底在整啥？—(07)</title><link>http://item.feedsky.com/~feedsky/WP_at_BC/~7034722/97620971/5142671/1/item.html</link><content:encoded>&lt;p&gt;好吧，还是来到这里了，这回还是支线情节，但是由于其趣味性和实用性，我还是想写写……&lt;/p&gt;
&lt;h3&gt;百宝箱functions.php&lt;/h3&gt;
&lt;p&gt;这个文件确实是一个百宝箱，里面什么都有，我打算分个几次把这里的函数都给罗列一遍，以后就当成我自己的函数参考好了。呵呵……&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-110&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#_config_wp_home&quot;&gt;_config_wp_home( $url = '' )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#_config_wp_siteurl&quot;&gt;_config_wp_siteurl( $url = '' )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#_deprecated_file&quot;&gt;_deprecated_file($file, $version, $replacement=null)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#_deprecated_function&quot;&gt;_deprecated_function($function, $version, $replacement=null)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#_mce_set_direction&quot;&gt;_mce_set_direction( $input )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#absint&quot;&gt;absint( $maybeint )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#add_magic_quotes&quot;&gt;add_magic_quotes( $array )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#add_option&quot;&gt;add_option( $name, $value = '', $deprecated = '', $autoload = 'yes' )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#add_query_arg&quot;&gt;add_query_arg()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#apache_mod_loaded&quot;&gt;apache_mod_loaded($mod, $default = false)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#bool_from_yn&quot;&gt;bool_from_yn( $yn )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#build_query&quot;&gt;build_query( $data )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#cache_javascript_headers&quot;&gt;cache_javascript_headers()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#current_time&quot;&gt;current_time( $type, $gmt = 0 )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#date_i18n&quot;&gt;date_i18n( $dateformatstring, $unixtimestamp )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#dead_db&quot;&gt;dead_db()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#debug_fclose&quot;&gt;debug_fclose( $fp )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#debug_fopen&quot;&gt;debug_fopen( $filename, $mode )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#debug_fwrite&quot;&gt;debug_fwrite( $fp, $string )&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#delete_option&quot;&gt;delete_option( $name )&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span id=&quot;_config_wp_home&quot;&gt;&lt;strong&gt;_config_wp_home&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数真是让我相当匪夷所思的，为啥？因为这个函数根本没用！唯一使用到的地方就是有一个filter，叫做option_home，而这个filter却从来也没有apply过。很无语……或许是WPMU用的函数？&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;_config_wp_siteurl&quot;&gt;&lt;strong&gt;_config_wp_siteurl&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数同上一个函数，也没用，绑定到了option_siteurl这个filter上，但是从来也没有调用过……&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;_deprecated_file&quot;&gt;&lt;strong&gt;_deprecated_file&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;告知一个文件已经不建议使用，并且告知使用哪个文件来替代。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;_deprecated_function&quot;&gt;&lt;strong&gt;_deprecated_function&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;告知一个函数已经不建议使用，并且告知使用哪个函数来替代。检索这个关键字，可以看到所有过期的函数。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;_mce_set_direction&quot;&gt;&lt;strong&gt;_mce_set_direction&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这是一个filter（tiny_mce_before_init），其作用是在MCE（也就是撰写文章时候的那个编辑器）初始化之前，更改mce的方向，有些国家的人写在是从右往左写的哦~~~&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;absint&quot;&gt;&lt;strong&gt;absint&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;绝对值。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;add_magic_quotes&quot;&gt;&lt;strong&gt;add_magic_quotes&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;哈哈^_^，递归！！这个函数本质上就是对数组中的每一个值，运行一次addslashes，说起来PHP的数组，确实是一种树状结构的，只是这个叶子数是很随意的。从这个函数中，可以学习学习遍历数组的递归方法呢~~呵呵&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;add_option&quot;&gt;&lt;strong&gt;add_option&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;哎呀，按照字母序看来也是有很大的弊端的，比如这个函数，就是options相关函数群中的一个，怎么办呢？这个问题先放一放吧。唉……&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;add_query_arg&quot;&gt;&lt;strong&gt;add_query_arg&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数的功能是在一个已经有的uri里面增加一个key value对，形成新的uri。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;apache_mod_loaded&quot;&gt;&lt;strong&gt;apache_mod_loaded&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数有用，可以判断apache服务器是否有安装某个模块。其判断方法也不错，值得学习，一是通过apache_get_modules函数直接取得已经安装的mod的数组，如果该函数不可用，可以通过phpinofo(8)来获得一个字符串，判断是否在这个字符串中包含mod的名字，呵呵，长见识了。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;bool_from_yn&quot;&gt;&lt;strong&gt;bool_from_yn&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;把“y”和“n”变成bool值，也即true或false。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;build_query&quot;&gt;&lt;strong&gt;build_query&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;我前面介绍过compat.php这个文件，里面提到了WP自己修补了PHP5不存在的函数http_build_query 。其作用就是将一个数组转换成url的形式。这个函数没啥的，就是调用了这个函数，不过很值得怀疑的一点是，这里为什么调用的是它自己修补的那个版本呢？应该直接调用http_build_query这个函数的，因为已经经过compat.php的修补，一定不会有问题的。真是莫名啊……&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;cache_javascript_headers&quot;&gt;&lt;strong&gt;cache_javascript_headers&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个东西也是相当的有用哦~调用这个函数，可以发送一个header，要求浏览器缓存一个js文件十天。我搜索了一下WP的所有文件，发现，没有一个地方调用过这个函数的，估计这个函数就是用来让插件或者主题的作者调用的。有些插件会通过PHP生成&lt;a href=&quot;http://www.charlestang.cn/tags/javascript&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 javascript 下的日志&quot;&gt;javascript&lt;/a&gt;文件，调用这个函数，可以让php生成的js缓存十天。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;current_time&quot;&gt;&lt;strong&gt;current_time&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;返回表示当前时间的字符串。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;date_i18n&quot;&gt;&lt;strong&gt;date_i18n&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这个函数的作用呢，就是返回一个表示时间的字符串，而且这个字符串是符合WP设定的那种语言的语言习惯的。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;dead_db&quot;&gt;&lt;strong&gt;dead_db&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;当建立数据库连接发生错误的时候，打印一个页面告知错误，并中止WP的继续运行。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;debug_fclose&quot;&gt;&lt;strong&gt;debug_fclose&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;本质上就是fclose。这个函数包括后续的3个，正好就是一套函数，看代码来说，是在$&lt;a href=&quot;http://www.charlestang.cn/tags/debug&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 debug 下的日志&quot;&gt;debug&lt;/a&gt;这个全局变量的控制下，向文件写入调试信息的一个方法，只是不知道这个$&lt;a href=&quot;http://www.charlestang.cn/tags/debug&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 debug 下的日志&quot;&gt;debug&lt;/a&gt;是在何处开启的，还是直接在config里面手动设定一下就ok？&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;debug_fopen&quot;&gt;&lt;strong&gt;debug_fopen&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;打开文件。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;debug_fwrite&quot;&gt;&lt;strong&gt;debug_fwrite&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;向文件写入字符串。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;delete_option&quot;&gt;&lt;strong&gt;delete_option&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;option系列函数，以后专门开一篇文章分析一下吧。&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/?p=110&amp;amp;akst_action=share-this&quot;  title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_110&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/a&gt;
&lt;/p&gt;
	标签：&lt;a href=&quot;http://www.charlestang.cn/tags/code-reading&quot; title=&quot;code reading&quot; rel=&quot;tag nofollow&quot;&gt;code reading&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; title=&quot;WordPress&quot; rel=&quot;tag nofollow&quot;&gt;WordPress&lt;/a&gt;&lt;br /&gt;</content:encoded><wfw:commentRss>http://www.charlestang.cn/inside-wordpress-07.htm/feed</wfw:commentRss><description>好吧，还是来到这里了，这回还是支线情节，但是由于其趣味性和实用性，我还是想写写……
百宝箱functions.php
这个文件确实是一个百宝箱，里面什么都有，我打算分个几次把这里的函数都给罗列一遍，以后就当成我自己的函数参考好了。呵呵……

&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/inside-wordpress-07.htm&quot; title=&quot;WordPress到底在整啥？—(07)&quot; target=&quot;_blank&quot;&gt;阅读全文——共2276字&lt;/a&gt;&lt;/span&gt;</description><category>code reading</category><category>WordPress</category><pubDate>Wed, 09 Jul 2008 11:17:29 +0800</pubDate><author>Charles</author><comments>http://www.charlestang.cn/inside-wordpress-07.htm#comments</comments><guid isPermaLink="false">http://www.charlestang.cn/?p=110</guid><dc:creator>Charles</dc:creator><fs:srclink>http://www.charlestang.cn/inside-wordpress-07.htm</fs:srclink><fs:srcfeed>http://www.charlestang.cn/cata/wp/feed/</fs:srcfeed><fs:itemid>feedsky/WP_at_BC/~7034722/97620971/5142671</fs:itemid></item><item><title>WordPress到底在整啥？—(06)</title><link>http://item.feedsky.com/~feedsky/WP_at_BC/~7034722/97620972/5142671/1/item.html</link><content:encoded>&lt;p&gt;上回把前面一对闲杂都说了一遍，今天开始一个个看吧^^&lt;/p&gt;
&lt;h3&gt;compat.php&lt;/h3&gt;
&lt;p&gt;具我猜测，compat这个词是compatibility的意思，没错，就是兼容。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-109&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;做了点啥呢？主要是把新版本有的，而老版本没有的函数，都给实现了一遍。从源代码里面可以看出，&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;最多兼容到&gt;PHP4.3.0。这是前面看过的代码里面的，我希望我没记错。&lt;/p&gt;
&lt;p&gt;这里补充的函数倒也不多，我就罗列一下好了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;http_build_query()&lt;/li&gt;
&lt;li&gt;_()&lt;/li&gt;
&lt;li&gt;stripos()&lt;/li&gt;
&lt;li&gt;hash_hmac()&lt;/li&gt;
&lt;li&gt;mb_strcut()&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;新版本的php手册里面，对这些函数都有解释的，我不想赘述了。我对这里的那第二个函数是非常好奇的，到底是干什么的？接受一个字符串参数，返回那个字符串，那就直接写一个字符串不就得了？我终究还是有点天真的，如果谁知道那个是干什么的，请告诉我，真是太奇怪了，搜索了全部源代码，好像只有class-pop3.php里面用到了。&lt;/p&gt;
&lt;p&gt;另一个想唠两句的是最后一个函数，mb_strcut()，按理说，就是 multibyte string cut，也即多字节文字字符串剪切函数，不过从这个函数来看，只对utf8编码的字符串奏效，所以，wp推荐每个博客尽可能使用utf8编码。这个时候，我就想起了著名的中文工具箱，里面用了个utf8_trim，其实是否有可能用这个函数代替呢？还有就是yskin的CJK-excerpt，里面用了一个mb_strlen，是不是也可以用这个函数来代替？我只是一说，希望真正的高手看到这里，能给我指点一二吧。（我个人的感受是，utf8_trim的效果还不是很干净啊，最后还会有一个乱码，有时候是个小方块。也可能我没用对。）&lt;/p&gt;
&lt;p&gt;本来今天想在往下写点的，但是我一看，后面两个都是重量级的，马上打了退堂鼓了。一个是WP的百宝箱，functions.php，另一个就是WP这个类的定义了，那个里面有WP这个程序的main函数哦~~~这个算是对后面内容的简短预报了吧，嘿嘿^^&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/?p=109&amp;amp;akst_action=share-this&quot;  title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_109&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/a&gt;
&lt;/p&gt;
	标签：&lt;a href=&quot;http://www.charlestang.cn/tags/code-reading&quot; title=&quot;code reading&quot; rel=&quot;tag nofollow&quot;&gt;code reading&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; title=&quot;WordPress&quot; rel=&quot;tag nofollow&quot;&gt;WordPress&lt;/a&gt;&lt;br /&gt;</content:encoded><wfw:commentRss>http://www.charlestang.cn/inside-wordpress-06.htm/feed</wfw:commentRss><description>上回把前面一对闲杂都说了一遍，今天开始一个个看吧^^
compat.php
具我猜测，compat这个词是compatibility的意思，没错，就是兼容。

&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/inside-wordpress-06.htm&quot; title=&quot;WordPress到底在整啥？—(06)&quot; target=&quot;_blank&quot;&gt;阅读全文——共820字&lt;/a&gt;&lt;/span&gt;</description><category>code reading</category><category>WordPress</category><pubDate>Mon, 07 Jul 2008 14:59:30 +0800</pubDate><author>Charles</author><comments>http://www.charlestang.cn/inside-wordpress-06.htm#comments</comments><guid isPermaLink="false">http://www.charlestang.cn/?p=109</guid><dc:creator>Charles</dc:creator><fs:srclink>http://www.charlestang.cn/inside-wordpress-06.htm</fs:srclink><fs:srcfeed>http://www.charlestang.cn/cata/wp/feed/</fs:srcfeed><fs:itemid>feedsky/WP_at_BC/~7034722/97620972/5142671</fs:itemid></item><item><title>插件开发全攻略（目录）</title><link>http://item.feedsky.com/~feedsky/WP_at_BC/~7034722/97620973/5142671/1/item.html</link><content:encoded>&lt;p&gt;隔了这么久，终于将这个系列文章都翻译完了，这么一遍走下来，实在觉得自己很浅薄，技术和语言水平都十分有限。恐怕也没有全部传达原作者的意图。&lt;/p&gt;
&lt;p&gt;我打算陆续将该系列的文章校对一遍，并且打算将这个系列里面的例子改写成自己的例子，这样，我可以对文章有更准确的理解。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-114&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这里，我罗列一下这个系列文章的目录吧。英文名字就是原文，底下的中文名字就是译文。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://www.devlounge.net/articles/how-to-write-a-wordpress-plugin-introduction&quot;&gt;How to Write a WordPress Plugin - Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-01.htm&quot;&gt;介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.devlounge.net/articles/seven-reasons-to-write-a-wordpress-plugin&quot;&gt;Seven Reasons to Write a WordPress Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-02.htm&quot;&gt;编写插件的七个理由&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.devlounge.net/articles/how-to-get-ideas-for-wordpress-plugins&quot;&gt;How to Get Ideas for Wordpress Plugins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-03.htm&quot;&gt;怎样获得WordPress插件的创意&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.devlounge.net/articles/structure-of-a-wordpress-plugin&quot;&gt;Structure of a Wordpress Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-04.htm&quot;&gt;WordPress插件的结构&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.devlounge.net/articles/wordpress-plugin-actions&quot;&gt;WordPress Plugin Actions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-05.htm&quot;&gt;WordPress 插件Actions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.devlounge.net/articles/wordpress-plugin-filters&quot;&gt;WordPress Plugin Filters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-06.htm&quot;&gt;WordPress插件Filter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.devlounge.net/articles/constructing-an-wordpress-plugin-admin-panel&quot;&gt;Constructing a WordPress Plugin Admin Panel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-07.htm&quot;&gt;构造一个WordPress插件管理员面板&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.devlounge.net/articles/constructing-a-wordpress-plugin-users-panel&quot;&gt;Constructing a WordPress Plugin User&amp;#8217;s Panel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-08.htm&quot;&gt;构建一个WordPress插件用户面板&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.devlounge.net/articles/wordpress-plugins-and-database-interaction&quot;&gt;WordPress Plugins and Database Interaction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-09.htm&quot;&gt;WordPress插件和数据库交互&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.devlounge.net/articles/using-javascript-and-css-with-your-wordpress-plugin&quot;&gt;Using JavaScript and CSS with your WordPress Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-10.htm&quot;&gt;在你的WordPress插件中使用Javascript和CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.devlounge.net/articles/using-ajax-with-your-wordpress-plugin&quot;&gt;Using AJAX with your WordPress Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-11.htm&quot;&gt;在你的WP插件中使用AJAX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.devlounge.net/articles/releasing-and-promoting-your-wordpress-plugin&quot;&gt;Releasing and Promoting Your WordPress Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-12.htm&quot;&gt;发布并推广你的WordPress插件&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;原来的目录页面在：&lt;a href=&quot;http://www.devlounge.net/extras/how-to-write-a-wordpress-plugin&quot;&gt;这里&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;还提供PDF版本的下载哦。&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/?p=114&amp;amp;akst_action=share-this&quot;  title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_114&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/a&gt;
&lt;/p&gt;
	标签：&lt;a href=&quot;http://www.charlestang.cn/tags/develop&quot; title=&quot;develop&quot; rel=&quot;tag nofollow&quot;&gt;develop&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/plugins&quot; title=&quot;plugins&quot; rel=&quot;tag nofollow&quot;&gt;plugins&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/translate&quot; title=&quot;translate&quot; rel=&quot;tag nofollow&quot;&gt;translate&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; title=&quot;WordPress&quot; rel=&quot;tag nofollow&quot;&gt;WordPress&lt;/a&gt;&lt;br /&gt;</content:encoded><wfw:commentRss>http://www.charlestang.cn/how-to-write-a-wp-plugin-contents.htm/feed</wfw:commentRss><description>隔了这么久，终于将这个系列文章都翻译完了，这么一遍走下来，实在觉得自己很浅薄，技术和语言水平都十分有限。恐怕也没有全部传达原作者的意图。
我打算陆续将该系列的文章校对一遍，并且打算将这个系列里面的例子改写成自己的例子，这样，我可以对文章有更准确的理解。

这里，我罗列一下这个系列文章的目录吧。英文名字就是原文，底下的中文名字就是译文。
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-contents.htm&quot; title=&quot;插件开发全攻略（目录）&quot; target=&quot;_blank&quot;&gt;阅读全文——共800字&lt;/a&gt;&lt;/span&gt;</description><category>translate</category><category>plugins</category><category>develop</category><category>WordPress</category><pubDate>Sun, 06 Jul 2008 11:33:58 +0800</pubDate><author>Charles</author><comments>http://www.charlestang.cn/how-to-write-a-wp-plugin-contents.htm#comments</comments><guid isPermaLink="false">http://www.charlestang.cn/?p=114</guid><dc:creator>Charles</dc:creator><fs:srclink>http://www.charlestang.cn/how-to-write-a-wp-plugin-contents.htm</fs:srclink><fs:srcfeed>http://www.charlestang.cn/cata/wp/feed/</fs:srcfeed><fs:itemid>feedsky/WP_at_BC/~7034722/97620973/5142671</fs:itemid></item><item><title>插件开发全攻略（12）---发布并推广你的WordPress插件</title><link>http://item.feedsky.com/~feedsky/WP_at_BC/~7034722/97620974/5142671/1/item.html</link><content:encoded>&lt;p&gt;在你完成了你了不起的&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;插件后，在你发布和推广你的插件之前，还有一些事情需要考虑。&lt;/p&gt;
&lt;h3&gt;发布前&lt;/h3&gt;
&lt;h4&gt;努力遵循标准&lt;/h4&gt;
&lt;p&gt;虽然遵循&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;编码规范不是必须的，但是有些东西确实可以让你的生活变得简单。其中最有价值的一个建议是&lt;strong&gt;永远不要使用简写的PHP&lt;/strong&gt;。原因呢？并非每个人都会将简写开启。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-108&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;所以，不要这样写：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;div class=&quot;hl-main&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li&gt;&amp;nbsp;&lt;span style=&quot;color: Blue;&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;/*&lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;your php code&lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;*/&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;而要这样写：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;div class=&quot;hl-main&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li&gt;&amp;nbsp;&lt;span style=&quot;color: Blue;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;/*&lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;your php code&lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;*/&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h4&gt;确保你已经完全测试了你的插件&lt;/h4&gt;
&lt;p&gt;找一些爱好者来测试你的插件。技术上来说，专门的测试人员是好的，但是你还是希望有一些普通的并不懂得编程语言的用户来测试。&lt;/p&gt;
&lt;p&gt;找到所有的&lt;a href=&quot;http://www.charlestang.cn/tags/bug&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 bug 下的日志&quot;&gt;bug&lt;/a&gt;是不可能的，但是至少努力推出一个稳定的版本。&lt;/p&gt;
&lt;h4&gt;确保你有一个Readme文件&lt;/h4&gt;
&lt;p&gt;在你把插件向大众公开之前，确认一下你是否有一个Readme文件。这个文件应该包含最基本的安装流程介绍。对于一个要求严格的readme文件版本，请检查&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;推荐Readme格式。甚至有一个绝妙的Readme文件验证器。&lt;/p&gt;
&lt;h4&gt;设立一个专门的&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;插件页面&lt;/h4&gt;
&lt;p&gt;Ajay D'Souza曾经写过如何发布&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;主题的建议。他的建议也可以在某种程度上用在插件之上。&lt;/p&gt;
&lt;p&gt;确保你设立了一个专门的插件页面。在这个页面上，用户可以找到关于这个插件的任何东西。这个插件的页面至少要包含以下的东西：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;对你的插件的一个简单描述&lt;/li&gt;
&lt;li&gt;下载链接&lt;/li&gt;
&lt;li&gt;特性列表&lt;/li&gt;
&lt;li&gt;安装指南&lt;/li&gt;
&lt;li&gt;版本历史&lt;/li&gt;
&lt;li&gt;已知的bugs和冲突&lt;/li&gt;
&lt;li&gt;截图或者demo&lt;/li&gt;
&lt;li&gt;联系或者支持信息（或者允许评论
&lt;li&gt;
&lt;/ul&gt;
&lt;p&gt;上述信息将帮助你提升你的插件，尤其是描述和特性部分。&lt;/p&gt;
&lt;h4&gt;有一个好的目录结构&lt;/h4&gt;
&lt;p&gt;我会力劝你总是把自己的插件放在一个目录里面，除了主要插件文件外的任何文件都应该放在子目录里面。确保你zip，gzip或者rar你的插件，使得人们可以非常简单的安装你的插件。&lt;/p&gt;
&lt;h4&gt;你的插件需要修改模板或者文件修改吗？&lt;/h4&gt;
&lt;p&gt;如果你的插件需要修改模板的设置或者文件，做好被&lt;a href=&quot;http://www.charlestang.cn/tags/bug&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 bug 下的日志&quot;&gt;bug&lt;/a&gt;报告和等待的帮助猛攻的准备。我认为，一个好的插件绝对不需要修改主题或者某个文件的。除非这个插件往&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;内核中添加了模板标签。&lt;/p&gt;
&lt;p&gt;如果你的插件确实需要模板修改或者文件修改，在你的下载页面包含一些详细的例子，并且尽可能在你的发布中包含一些demo。&lt;/p&gt;
&lt;h3&gt;推广你的插件&lt;/h3&gt;
&lt;p&gt;在你拥有了你专门的下载页面后，是时候发布你插件的信息使得人们来下载你的插件了。你花在你的插件描述和特性的撰写上的时间是非产关键的，因为这决定了人们会否采用你的插件。其他人链接到你的插件也非常重要。&lt;/p&gt;
&lt;h4&gt;在Weblog Tools Collection推广&lt;/h4&gt;
&lt;p&gt;一个推广你的插件的很好的地方是在Weblog Tools Collection。在他们的插件发布栏目，你可以将你的详细描述投递，推荐你的插件。&lt;/p&gt;
&lt;h4&gt;在&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;插件数据库推广&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;插件数据库是另一个添加你的插件的好去处。添加你的插件的过程不是那么一帆风顺的，但是有详细的指导。&lt;/p&gt;
&lt;h4&gt;在&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;官方插件库推广&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;自己提供了主机来存放你的插件。不过，在你被允许添加你的插件之前，你必须满足几个条件。记住，任何宣传都是好的宣传。&lt;/p&gt;
&lt;h4&gt;使用社会网络推广&lt;/h4&gt;
&lt;p&gt;将你的插件添加到delicious，digg，和Stumble Upon。让你的朋友来帮忙。如果你的插件足够好，推荐就会广为流传。&lt;/p&gt;
&lt;h4&gt;在你自己的博客上推广&lt;/h4&gt;
&lt;p&gt;如果你的插件是人们会注意到的，在你自己的博客上使用吧。人们会开始问，你使用的到底是什么插件。口口相传是非常有效的，尤其是在博客社区内。&lt;/p&gt;
&lt;h3&gt;结论&lt;/h3&gt;
&lt;p&gt;你可以拥有世界上最好的插件，但是如果没有正确的发布和推广，只有很少的人会下载它。一旦你开始你的推广过程，倾听特性需求和&lt;a href=&quot;http://www.charlestang.cn/tags/bug&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 bug 下的日志&quot;&gt;bug&lt;/a&gt;报告是非常重要的，尤其是你的插件非常年轻的时候。如果你的插件不起作用，或者太多的人使用的时候遇到问题，人们下载的时候就会非常担忧。所以，在早期修复那些&lt;a href=&quot;http://www.charlestang.cn/tags/bug&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 bug 下的日志&quot;&gt;bug&lt;/a&gt;和添加重要的特性是非常重要的。绝大多数这样的问题可以在测试的过程中解决，但是有些&lt;a href=&quot;http://www.charlestang.cn/tags/bug&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 bug 下的日志&quot;&gt;bug&lt;/a&gt;只有在官方发布后才能看到。&lt;/p&gt;
&lt;h3&gt;写在《插件开发全攻略》系列的结尾&lt;/h3&gt;
&lt;p&gt;感谢您阅读插件开发系列文章的最后一篇。希望这个系列能够让您受益，并且帮助你为撰写自己的插件建立基础。非常感谢您的阅读。&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/?p=108&amp;amp;akst_action=share-this&quot;  title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_108&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/a&gt;
&lt;/p&gt;
	标签：&lt;a href=&quot;http://www.charlestang.cn/tags/develop&quot; title=&quot;develop&quot; rel=&quot;tag nofollow&quot;&gt;develop&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/plugins&quot; title=&quot;plugins&quot; rel=&quot;tag nofollow&quot;&gt;plugins&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/translate&quot; title=&quot;translate&quot; rel=&quot;tag nofollow&quot;&gt;translate&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; title=&quot;WordPress&quot; rel=&quot;tag nofollow&quot;&gt;WordPress&lt;/a&gt;&lt;br /&gt;</content:encoded><wfw:commentRss>http://www.charlestang.cn/how-to-write-a-wp-plugin-12.htm/feed</wfw:commentRss><description>在你完成了你了不起的WordPress插件后，在你发布和推广你的插件之前，还有一些事情需要考虑。
发布前
努力遵循标准
虽然遵循WordPress编码规范不是必须的，但是有些东西确实可以让你的生活变得简单。其中最有价值的一个建议是永远不要使用简写的PHP。原因呢？并非每个人都会将简写开启。
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-12.htm&quot; title=&quot;插件开发全攻略（12）---发布并推广你的WordPress插件&quot; target=&quot;_blank&quot;&gt;阅读全文——共1648字&lt;/a&gt;&lt;/span&gt;</description><category>translate</category><category>plugins</category><category>develop</category><category>WordPress</category><pubDate>Thu, 03 Jul 2008 12:10:26 +0800</pubDate><author>Charles</author><comments>http://www.charlestang.cn/how-to-write-a-wp-plugin-12.htm#comments</comments><guid isPermaLink="false">http://www.charlestang.cn/?p=108</guid><dc:creator>Charles</dc:creator><fs:srclink>http://www.charlestang.cn/how-to-write-a-wp-plugin-12.htm</fs:srclink><fs:srcfeed>http://www.charlestang.cn/cata/wp/feed/</fs:srcfeed><fs:itemid>feedsky/WP_at_BC/~7034722/97620974/5142671</fs:itemid></item><item><title>WordPress到底在整啥？—(05)</title><link>http://item.feedsky.com/~feedsky/WP_at_BC/~7034722/97620975/5142671/1/item.html</link><content:encoded>&lt;p&gt;我们已经开始了正式的&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;之旅，接下去就是在Settings这条主线上，每每看到什么重要的景点，我们都会钻进去看个究竟的。开始吧。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-107&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;首先是个内存大小的定义，WP_MEMORY_LIMIT，关于这个也没啥好说的，就知道这里定了个数字是32M，目前还没看出什么关键的来。&lt;/p&gt;
&lt;h3&gt;wp_unregister_GLOBALS()&lt;/h3&gt;
&lt;p&gt;这是wp-settings.php里面执行的第一个非php内建函数，其实，这个东西涉及到php语言的一个特性，不管了，先看看吧。&lt;/p&gt;
&lt;h4&gt;register_globals&lt;/h4&gt;
&lt;p&gt;这是php.ini中的一个指令，指定是否将EGPCS(Environment, GET, POST, Cookie, Server) 变量注册为全局变量。在高于4.2.0的php版本中，这个变量已经被默认设定为off了，从PHP6.0开始，这个变量将不推荐使用或者被移除。其实，最主要的问题是，这个选项的开启，会使得php的执行有严重的安全隐患，因为并不是每个程序员都那么严谨地会注意到这个问题。详细的东西，大家可以&lt;a href=&quot;http://cn2.php.net/register_globals&quot;&gt;参考这里&lt;/a&gt;。&lt;/p&gt;
&lt;h4&gt;wp怎么处理的&lt;/h4&gt;
&lt;p&gt;如果，这个选项没有被开启，则函数直接返回；如果开启了，也即意味着所有的东西（EGPCS）都会变成全局变量，这个意味着啥呢？简单说，就是当你使用一个global $xxx的时候，你必须确认一次这个xxx到底来自何处，否则后果很可能会很严重。所以，wp在这个选项开启的情况下，率先将所有不该出现在GLOBAL里面的变量，全部给unset掉了。具体做法请参看代码，我也并没有完全看懂，还是对php执行的某些机制不了解，也先存个疑。&lt;/p&gt;
&lt;h3&gt;杂&lt;/h3&gt;
&lt;p&gt;这里，我实在是没啥名字可以用了。后面做了很多事情。&lt;/p&gt;
&lt;p&gt;先是尝试修复WP的运行环境，然后检查了PHP的数据库扩展是否安装。&lt;/p&gt;
&lt;p&gt;接着定义了计时开始函数，和计时结束函数，在很多模板的末尾，都有一个执行了多少时间和多少查询的统计，其中那个时间，就是在这里开始的。到了这里，我们来看看这个时间函数的代码。&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;div class=&quot;hl-main&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li&gt;&amp;nbsp;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;timer_start&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;global&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$timestart&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$mtime&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;explode&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;microtime&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$mtime&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$mtime&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; + &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$mtime&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$timestart&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$mtime&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;这里在放一个teimer_stop的函数头&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;timer_stop&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$display&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$precision&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;我主要是想说，其实，我们可以参考这个写法，在写插件的时候，利用这个来给自己的插件计算一个执行时间，也算是一个插件作者测试过程中的严谨作风了吧，毕竟，如果你发现你的插件执行时间非常恐怖，就要考虑改进你的算法或者策略了。编写主题的话，也可以考虑在footer中添加一个timer_stop（你完全可以放在注释里面），这样也能观察一下自己主题的性能。这个函数竟然还可以指定精度，倒是让我挺意外的，不过默认的3位已经相当足够了。&lt;/p&gt;
&lt;p&gt;然后是一些常量。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.charlestang.cn/tags/debug&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 debug 下的日志&quot;&gt;DEBUG&lt;/a&gt;，我想，以后，我可能会用到这个吧，主要是调试WP的时候用的。&lt;/p&gt;
&lt;p&gt;CACHE，这个常量是可以在wp-config.php里面定义的，如果你自己实现了一个advanced-cache.php的话，你可以把那个文件放到wp-content目录里面。&lt;/p&gt;
&lt;p&gt;WPINC，引用目录，指向wp-includes目录。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;LANGDIR&lt;/strong&gt;，这个东西蛮好玩的，允许用户指定语言文件的目录，默认是在wp-content/languages或者wp-includes/languages里面。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PLUGINDIR&lt;/strong&gt;，这个目录也可以指定，当然我不知道，更换这个目录到底有什么用。或许以后会发现。&lt;/p&gt;
&lt;p&gt;上面加粗的常量，都是可以放到wp-config.php里面去指定的，以后也会沿用这一记法。&lt;/p&gt;
&lt;p&gt;========罪恶分割线=========&lt;/p&gt;
&lt;p&gt;终于把闲杂说完了，后面，就开始成批成批的引用其他的php文件了，所以，这里就先打住了。&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/?p=107&amp;amp;akst_action=share-this&quot;  title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_107&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/a&gt;
&lt;/p&gt;
	标签：&lt;a href=&quot;http://www.charlestang.cn/tags/code-reading&quot; title=&quot;code reading&quot; rel=&quot;tag nofollow&quot;&gt;code reading&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; title=&quot;WordPress&quot; rel=&quot;tag nofollow&quot;&gt;WordPress&lt;/a&gt;&lt;br /&gt;</content:encoded><wfw:commentRss>http://www.charlestang.cn/inside-wordpress-05.htm/feed</wfw:commentRss><description>我们已经开始了正式的WordPress之旅，接下去就是在Settings这条主线上，每每看到什么重要的景点，我们都会钻进去看个究竟的。开始吧。

首先是个内存大小的定义，WP_MEMORY_LIMIT，关于这个也没啥好说的，就知道这里定了个数字是32M，目前还没看出什么关键的来。
wp_unregister_GLOBALS()
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/inside-wordpress-05.htm&quot; title=&quot;WordPress到底在整啥？—(05)&quot; target=&quot;_blank&quot;&gt;阅读全文——共1614字&lt;/a&gt;&lt;/span&gt;</description><category>code reading</category><category>WordPress</category><pubDate>Wed, 02 Jul 2008 12:54:05 +0800</pubDate><author>Charles</author><comments>http://www.charlestang.cn/inside-wordpress-05.htm#comments</comments><guid isPermaLink="false">http://www.charlestang.cn/?p=107</guid><dc:creator>Charles</dc:creator><fs:srclink>http://www.charlestang.cn/inside-wordpress-05.htm</fs:srclink><fs:srcfeed>http://www.charlestang.cn/cata/wp/feed/</fs:srcfeed><fs:itemid>feedsky/WP_at_BC/~7034722/97620975/5142671</fs:itemid></item><item><title>插件开发全攻略(11)---在你的WP插件中使用AJAX</title><link>http://item.feedsky.com/~feedsky/WP_at_BC/~7034722/97620976/5142671/1/item.html</link><content:encoded>&lt;p&gt;越来越多的插件开始使用AJAX技术。我个人并没有在大多数的插件中看到过AJAX，但是使用AJAX来完成某个任务对你的插件来说可能是必要的。这篇文章将像你展示怎样在你的插件中使用AJAX。&lt;/p&gt;
&lt;p&gt;这篇文章将在上一篇文章&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-09.htm&quot;&gt;《在插件中添加js和css》&lt;/a&gt;的基础上继续。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-106&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;建立一个新的PHP文件&lt;/h3&gt;
&lt;p&gt;Devlounge Plugin Series插件已经有了如下的目录结构了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;devloung-plugin-series
&lt;ul&gt;
&lt;li&gt;devlounge-plugin-series.php(main plugin file)&lt;/li&gt;
&lt;li&gt;js
&lt;ul&gt;
&lt;li&gt;devlounge-plugin-series.js.php&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.charlestang.cn/tags/css&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 CSS 下的日志&quot;&gt;css&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;devlounge-plugin-series.&lt;a href=&quot;http://www.charlestang.cn/tags/css&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 CSS 下的日志&quot;&gt;css&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;php
&lt;ul&gt;
&lt;li&gt;dl-plugin-ajax.php(新php文件)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;注意，我的&lt;a href=&quot;http://www.charlestang.cn/tags/javascript&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 javascript 下的日志&quot;&gt;javascript&lt;/a&gt;文件的扩展名是&lt;strong&gt;php&lt;/strong&gt;。我会在这篇文章后面解释这个变化的来历。&lt;/p&gt;
&lt;p&gt;我已经建立了一个新的文件，并且把它放到了&lt;strong&gt;php&lt;/strong&gt;文件夹中，并且命名为&lt;strong&gt;dl-plugin-ajax.php&lt;/strong&gt;。我已经在这个文件中放了如下的代码：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;div class=&quot;hl-main&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li&gt;&amp;nbsp;&lt;span style=&quot;color: Blue;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;function_exists&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;add_action&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;    &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;require_once&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;../../../../wp-config.php&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;isset&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$dl_pluginSeries&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;    &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$dl_pluginSeries&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;showComments&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;这个段代码非常简单，并且仅为做AJAX调用而写。它确保了配置结构存在，从而我们可以调用类对象&lt;strong&gt;dl_pluginSeries&lt;/strong&gt;，引用其他&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;函数和变量。然而，&lt;strong&gt;showComments&lt;/strong&gt;函数还没有创建，我们下一个议程就是来做这件事。&lt;/p&gt;
&lt;h3&gt;定义showComments函数&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;showComments&lt;/strong&gt;函数将放在我们的&lt;strong&gt;DevloungPluginSeries&lt;/strong&gt;类中：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;div class=&quot;hl-main&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li&gt;&amp;nbsp;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;showComments&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;global&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$wpdb&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;    &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$devloungecomments&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$wpdb&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;get_row&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;SELECT count(comment_approved) comments_count FROM &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$wpdb&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;-&amp;gt;comments where comment_approved = '1' group by comment_approved&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;ARRAY_A&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;    &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;You have &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;$devloungecomments&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;comments_count&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt; comments on your blog&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;可能已经认出来了，这段代码在数据库交互这篇文章中出现过。此函数输出你博客上留言的数量。&lt;/p&gt;
&lt;h3&gt;让&lt;a href=&quot;http://www.charlestang.cn/tags/javascript&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 javascript 下的日志&quot;&gt;JavaScript&lt;/a&gt;知道你的博客在哪里&lt;/h3&gt;
&lt;p&gt;使用AJAX时，一个烦人的事情就是外部&lt;a href=&quot;http://www.charlestang.cn/tags/javascript&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 javascript 下的日志&quot;&gt;JavaScript&lt;/a&gt;文件不知道你博客安装路径是什么。我是通过在js后面添加php扩展名来处理这个问题的，因为这样，我就可以调用&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;函数了。在&lt;strong&gt;addHeaderCode&lt;/strong&gt;函数中，我把代码从：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;div class=&quot;hl-main&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li&gt;&amp;nbsp;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;function_exists&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;wp_enqueue_script&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;wp_enqueue_script&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;devlounge_plugin_series&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;get_bloginfo&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;wpurl&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;/wp-content/plugins/devlounge-plugin-series/js/devlounge-plugin-series.js&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;prototype&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;0.1&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;换成：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;div class=&quot;hl-main&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li&gt;&amp;nbsp;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;function_exists&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;wp_enqueue_script&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;wp_enqueue_script&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;devlounge_plugin_seriess&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;get_bloginfo&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;wpurl&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; . &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;/wp-content/plugins/devlounge-plugin-series/js/devlounge-plugin-series.js.php&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;prototype&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;0.3&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;我唯一改变的是一个版本号码，还有就是给&lt;a href=&quot;http://www.charlestang.cn/tags/javascript&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 javascript 下的日志&quot;&gt;JavaScript&lt;/a&gt;文件添加了一个php扩展名。&lt;/p&gt;
&lt;h3&gt;编写&lt;a href=&quot;http://www.charlestang.cn/tags/javascript&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 javascript 下的日志&quot;&gt;JavaScript&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;这段脚本的目的是找到博客的URL，调用PHP文件，然后返回结果给用户。&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;div class=&quot;hl-main&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li&gt;&amp;nbsp;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;php&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;function_exists&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;add_action&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;    &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;require_once&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;../../../../wp-config.php&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;?&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;Event&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;observe&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Teal;&quot;&gt;window&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;load&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;devloungePluginSeriesInit&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;devloungePluginSeriesInit&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;    $&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;devlounge-link&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;onclick&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;devloungePluginSeriesClick&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;devloungePluginSeriesClick&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;evt&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;    &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; =  &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;&amp;lt;?php bloginfo('wpurl') ?&amp;gt;/wp-content/plugins/devlounge-plugin-series/php/dl-plugin-ajax.php&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;    &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;success&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;devloungePluginSeriesClickComplete&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;    &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;myAjax&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;Ajax&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;Request&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;method&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;post&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;onSuccess&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;success&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;    &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;devloungePluginSeriesClickComplete&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;    &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;responseText&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;上述代码做了下面这些事情（记住，我们在使用Prototype）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;确定配置结构是存在的，这样我们才能访问&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;WordPress&lt;/a&gt;函数&lt;/li&gt;
&lt;li&gt;在文档已经装载后，&lt;strong&gt;devloungePluginSeriesInit&lt;/strong&gt;函数被调用了&lt;/li&gt;
&lt;li&gt;给你添加到文章末尾的链接上绑定了一个事件。如果你忘了，现在可以加进去。简单地找到文章，然后添加这段代码：&amp;lt;a href=&quot;#&quot; id=&quot;devlounge-link&quot;&amp;gt;Get the Number of Blog Comments&amp;lt;/a&amp;gt;&lt;/li&gt;
&lt;li&gt;找到PHP文件的绝对路径&lt;/li&gt;
&lt;li&gt;调用PHP文件&lt;/li&gt;
&lt;li&gt;将反馈输出给用户&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;结果&lt;/h3&gt;
&lt;p&gt;下一步，我们假设你已经把那个链接添加好了。我们点击链接“&lt;strong&gt;Get the Number of Blog Comments&lt;/strong&gt;”，脚本使用AJAX调用了&lt;strong&gt;DevlongePluginSeries&lt;/strong&gt;类中的函数，并且以对话框的形式返回了结果。&lt;/p&gt;
&lt;p&gt;就如你看到的那样，我的本地安装版本，并没有多少评论。&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/?p=106&amp;amp;akst_action=share-this&quot;  title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_106&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/a&gt;
&lt;/p&gt;
	标签：&lt;a href=&quot;http://www.charlestang.cn/tags/develop&quot; title=&quot;develop&quot; rel=&quot;tag nofollow&quot;&gt;develop&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/plugins&quot; title=&quot;plugins&quot; rel=&quot;tag nofollow&quot;&gt;plugins&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/translate&quot; title=&quot;translate&quot; rel=&quot;tag nofollow&quot;&gt;translate&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; title=&quot;WordPress&quot; rel=&quot;tag nofollow&quot;&gt;WordPress&lt;/a&gt;&lt;br /&gt;</content:encoded><wfw:commentRss>http://www.charlestang.cn/how-to-write-a-wp-plugin-11.htm/feed</wfw:commentRss><description>越来越多的插件开始使用AJAX技术。我个人并没有在大多数的插件中看到过AJAX，但是使用AJAX来完成某个任务对你的插件来说可能是必要的。这篇文章将像你展示怎样在你的插件中使用AJAX。
这篇文章将在上一篇文章《在插件中添加js和css》的基础上继续。

建立一个新的PHP文件
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/how-to-write-a-wp-plugin-11.htm&quot; title=&quot;插件开发全攻略(11)---在你的WP插件中使用AJAX&quot; target=&quot;_blank&quot;&gt;阅读全文——共2457字&lt;/a&gt;&lt;/span&gt;</description><category>translate</category><category>plugins</category><category>develop</category><category>WordPress</category><pubDate>Tue, 01 Jul 2008 13:41:23 +0800</pubDate><author>Charles</author><comments>http://www.charlestang.cn/how-to-write-a-wp-plugin-11.htm#comments</comments><guid isPermaLink="false">http://www.charlestang.cn/?p=106</guid><dc:creator>Charles</dc:creator><fs:srclink>http://www.charlestang.cn/how-to-write-a-wp-plugin-11.htm</fs:srclink><fs:srcfeed>http://www.charlestang.cn/cata/wp/feed/</fs:srcfeed><fs:itemid>feedsky/WP_at_BC/~7034722/97620976/5142671</fs:itemid></item><item><title>WordPress到底在整啥？—(04)</title><link>http://item.feedsky.com/~feedsky/WP_at_BC/~7034722/97620977/5142671/1/item.html</link><content:encoded>&lt;p&gt;如果用一条大河来比喻这个WP的话，那么前几次，我们还在此河的源头，代码简单明确，有如涓涓细流的小溪，从wp-settings.php开始，我们已经来到了此河干流，大片的代码，来到了我们的眼前，简直波涛汹涌，不过呢，再怎么多的代码，总归还得顺序执行，幸好这个WP不是多线程（哎呀，这话说得有点武断了，因为我真的没有看完呢^^）。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-105&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;踏上征途&lt;/h3&gt;
&lt;p&gt;这里没有沿用前面几篇笔记的标题了，不用wp-settings.php来做标题，我这里简单解释一下，这个wp-settings.php在我看来，已经把WP最后产生出一个可供人们浏览的网页的之前的所有工作都做完了，当然也是靠着require之类的东西，引用别的文件做的，但是，真的做了许许多多的事情。如果我用这个wp-settings.php做标题，就得一直在这个标题下面，没完没了，直到把整个WP一遍跑到差不多80%了才能跳出这个标题，那多累啊。我没有那种一气呵成的水平，和能力，所以，我决定，以wp-settings.php为一个提纲，按照它规定的顺序和路线图，遇山开路，遇水架桥，逐步走完我们通览WP源代码的长征。&lt;/p&gt;
&lt;h3&gt;怎么走法？&lt;/h3&gt;
&lt;p&gt;其实，看一大陀的代码，是一件很累人的事情，但是我们想要揭示一下WP的内部运行机理，倒是非得麻烦一下不可，我看了有一些东西了，至少已经3个源码文件了嘛，还是有点心得的，有时候，我们看到上千行代码，总是会马上信心受挫，因为，很简单，真的很多。其实，这么多的东西，大都是支线剧情而已，打一个RPG，我的习惯是先赶快打一遍，把所有的主线剧情都打完，然后再从头开始，逐个地研究支线剧情，估计我们开代码也是如此。&lt;/p&gt;
&lt;p&gt;一大堆代码里面，夹杂着许许多多的function xxxx(){}，这个东西叫做函数定义，不叫做函数执行，其实，函数定义在我看来，就应该算是支线剧情了，记住个名字，记住地点，ok了，我们可以先走开，会主线剧情。当然，有的时候，我们真的会判断失误，就是一个剧情其实不是支线剧情，因为走下去的时候，我们发现过不去了，这时候在折回来不迟。&lt;/p&gt;
&lt;p&gt;所以，总结一下我们走下去的方法就是：曲折式前进，螺旋式上升。&lt;/p&gt;
&lt;p&gt;啥还没说呢，就废了一堆话，唉，……，88&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/?p=105&amp;amp;akst_action=share-this&quot;  title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_105&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/a&gt;
&lt;/p&gt;
	标签：&lt;a href=&quot;http://www.charlestang.cn/tags/code-reading&quot; title=&quot;code reading&quot; rel=&quot;tag nofollow&quot;&gt;code reading&lt;/a&gt;, &lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; title=&quot;WordPress&quot; rel=&quot;tag nofollow&quot;&gt;WordPress&lt;/a&gt;&lt;br /&gt;</content:encoded><wfw:commentRss>http://www.charlestang.cn/inside-wordpress-04.htm/feed</wfw:commentRss><description>如果用一条大河来比喻这个WP的话，那么前几次，我们还在此河的源头，代码简单明确，有如涓涓细流的小溪，从wp-settings.php开始，我们已经来到了此河干流，大片的代码，来到了我们的眼前，简直波涛汹涌，不过呢，再怎么多的代码，总归还得顺序执行，幸好这个WP不是多线程（哎呀，这话说得有点武断了，因为我真的没有看完呢^^）。

踏上征途
这里没有沿用前面几篇笔记的标题了，不用wp-settings.php来做标题，我这里简单解释一下，这个wp-settings.php在我看来，已经把WP最后产生出一个可供人们浏览的网页的之前的所有工作都做完了，当然也是靠着require之类的东西，引用别的文件做的，但是，真的做了许许多多的事情。如果我用这个wp-settings.php做标题，就得一直在这个标题下面，没完没了，直到把整个WP一遍跑到差不多80%了才能跳出这个标题，那多累啊。我没有那种一气呵成的水平，和能力，所以，我决定，以wp-settings.php为一个提纲，按照它规定的顺序和路线图，遇山开路，遇水架桥，逐步走完我们通览WP源代码的长征。
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.charlestang.cn/inside-wordpress-04.htm&quot; title=&quot;WordPress到底在整啥？—(04)&quot; target=&quot;_blank&quot;&gt;阅读全文——共895字&lt;/a&gt;&lt;/span&gt;</description><category>code reading</category><category>WordPress</category><pubDate>Mon, 30 Jun 2008 19:44:29 +0800</pubDate><author>Charles</author><comments>http://www.charlestang.cn/inside-wordpress-04.htm#comments</comments><guid isPermaLink="false">http://www.charlestang.cn/?p=105</guid><dc:creator>Charles</dc:creator><fs:srclink>http://www.charlestang.cn/inside-wordpress-04.htm</fs:srclink><fs:srcfeed>http://www.charlestang.cn/cata/wp/feed/</fs:srcfeed><fs:itemid>feedsky/WP_at_BC/~7034722/97620977/5142671</fs:itemid></item><item><title>WordPress到底在整啥？—(03)</title><link>http://item.feedsky.com/~feedsky/WP_at_BC/~7034722/97620978/5142671/1/item.html</link><content:encoded>&lt;p&gt;上一次，我终于耐着性子把wp-blog-header.php给看完了，当然，即便是二十几行代码，我也没有完全看懂，不过这没有关系，一个这么复杂的程序，又不是我自己写的，肯定不可能一目了然的，写在这里是很有好处的，否则，因为可能随着代码越看越多，我就忘了以前产生的疑点了。好，今天，我们来继续吧。我想后面的故事一定很精彩的。&lt;/p&gt;
&lt;h3&gt;wp-config.php&lt;/h3&gt;
&lt;p&gt;Config，就是configure，配置，没错，现在WP进入了配置阶段，其实，这个阶段是极其的漫长而XX的（我想不到什么形容词了），不管了，不能怕，硬着头皮上，我们来看看吧。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-104&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;首先是数据库的一些常量，这里面有数据库的名称、用户名、密码，这没啥好说的，一目了然，倒是我觉得，这里还有一些安全的考量的，凡是看过wp源代码的，都知道wp-config.php里面记载了很重要的东西，都知道这个文件放在&lt;a href=&quot;http://www.charlestang.cn/tags/wordpress&quot; class=&quot;st_tag internal_tag&quot; rel=&quot;tag nofollow&quot; title=&quot;标签 WordPress 下的日志&quot;&gt;wordpress&lt;/a&gt;目录，或者别的名字的目录下，总之，这个目录，你是不可能隐瞒的，因为登录的时候，那个路径里面是会暴露出这个目录的所在的，其实，我觉得WP有必要考虑允许用户随便命名wp-config.php，并且放到名字