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

<channel>
	<title>Terrysco&#039;s Blog &#187; wordpress</title>
	<atom:link href="http://www.terrysco.com/node/tag/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://www.terrysco.com</link>
	<description>仅关注于互联网行业， Linux平台开发。</description>
	<lastBuildDate>Sat, 05 Nov 2011 21:24:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>定制wordpress的文章发布</title>
		<link>http://www.terrysco.com/node/wordpress-meta-box.html</link>
		<comments>http://www.terrysco.com/node/wordpress-meta-box.html#comments</comments>
		<pubDate>Thu, 05 Nov 2009 04:04:16 +0000</pubDate>
		<dc:creator>terrysco</dc:creator>
				<category><![CDATA[CMS/FrameWork]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.terrysco.com/?p=287</guid>
		<description><![CDATA[wordpress在发布文章的时候，已经集成了很多特性，比如tinyMCE这个可视化编辑器，文章标签（tags），别名（alias），以及分类（taxonomy）。但对于一个基于wordpress的项目，我们仍然需要对其高度定制，wordpress为我们提供了add_meta_box，来优雅的解决这个问题。 用起来比较简单，就6个参数，其中第三个参数为callback。我们可以在这个callback中设置一些输出信息，或者一个表单，最常用的还是后者。比如我们设置一个textarea的文本区域，用来保存一些用户输入的信息，这样用户发布这个post或者page的时候，这个信息就会保存到postmeta表里。其次，我们可以使用get_post_meta来获取这个数据。说到这里，有必要简单提下wordpress的表结构。 不像drupal那么复杂，wordpress主要的内容信息其实就两个表，一个post表，一个postmeta表，前者存放用户发布的基本内容，比如一篇blog，后者存放这个内容的一些附加信息，比如我们刚才定制的那个textarea。 最后，这里说下我碰到的一个问题以及自己的解决办法。在使用add_meta_box的时候，我们只是给post这个表单加入了一些输入控件，如果要处理文件的上传，或者使用curl等库来处理更高级的http操作，就出现问题了。因为form这个表单本身在wordpress中就定义好了，我们知道如果上传文件，form表单必须设置enctype = “multipart/form-data”属性，但默认的是没有的。google大叔告诉我很多人直接修改了wordpress的core，但我觉得这不是一个好的处理方式，我的解决办法是加入一段javascript来动态修改。 window.onload = function() { var form = document.getElementById(“post”); form.enctype = “multipart/form-data”; }; 这段javascript可以替换为更好的jquery代码，因为jquery等很多javascript类库已经集成到wordpress里面。目前能想到的就是这种方式，或许我还不够了解wordpress的机制？]]></description>
			<content:encoded><![CDATA[<p>wordpress在发布文章的时候，已经集成了很多特性，比如tinyMCE这个可视化编辑器，文章标签（tags），别名（alias），以及分类（taxonomy）。但对于一个基于wordpress的项目，我们仍然需要对其高度定制，wordpress为我们提供了add_meta_box，来优雅的解决这个问题。</p>
<p>用起来比较简单，就6个参数，其中第三个参数为callback。我们可以在这个callback中设置一些输出信息，或者一个表单，最常用的还是后者。比如我们设置一个textarea的文本区域，用来保存一些用户输入的信息，这样用户发布这个post或者page的时候，这个信息就会保存到postmeta表里。其次，我们可以使用get_post_meta来获取这个数据。说到这里，有必要简单提下wordpress的表结构。</p>
<p>不像drupal那么复杂，wordpress主要的内容信息其实就两个表，一个post表，一个postmeta表，前者存放用户发布的基本内容，比如一篇blog，后者存放这个内容的一些附加信息，比如我们刚才定制的那个textarea。</p>
<p>最后，这里说下我碰到的一个问题以及自己的解决办法。在使用add_meta_box的时候，我们只是给post这个表单加入了一些输入控件，如果要处理文件的上传，或者使用curl等库来处理更高级的http操作，就出现问题了。因为form这个表单本身在wordpress中就定义好了，我们知道如果上传文件，form表单必须设置enctype = “multipart/form-data”属性，但默认的是没有的。google大叔告诉我很多人直接修改了wordpress的core，但我觉得这不是一个好的处理方式，我的解决办法是加入一段javascript来动态修改。<br />
window.onload = function() {<br />
	var form = document.getElementById(“post”);<br />
	form.enctype = “multipart/form-data”;<br />
};<br />
这段javascript可以替换为更好的jquery代码，因为jquery等很多javascript类库已经集成到wordpress里面。目前能想到的就是这种方式，或许我还不够了解wordpress的机制？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.terrysco.com/node/wordpress-meta-box.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>初涉wordpress开发</title>
		<link>http://www.terrysco.com/node/wordpress-starting.html</link>
		<comments>http://www.terrysco.com/node/wordpress-starting.html#comments</comments>
		<pubDate>Mon, 02 Nov 2009 10:23:30 +0000</pubDate>
		<dc:creator>terrysco</dc:creator>
				<category><![CDATA[CMS/FrameWork]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.terrysco.com/?p=285</guid>
		<description><![CDATA[近期涉及到wordpress-MU版本的开发工作，因为用户对其插件buddypress比较感兴趣。看了两天的文档，感慨wordpress文档的匮乏。。。 除了少的可怜的官方文档，基于codex系统，很多页面都没有书写外，自己down了一份plugin development的pdf，看完这个pdf才有点插件开发的感觉。写了4-5个小插件，熟悉了下wordpress的hook（wp中称作action和filter）。感觉还是不如drupal的模块优雅和灵活，但定制一个系统还是比较简单的，最大的痛苦就是wordpress的api函数太多，而很多都没有文档，不知道该如何选择，看了很多sample，用的还都不一样，版本之间留有差异性，不像drupal，5.x和6.x之间分别保持统一。 目前看来，一个buddypress新建一个用户，数据库中会多出8个表，这个恐怖的事实在网上已经有商业插件解决，不知道这个项目到底是怎么回事？ 另外，视频方面采用了vimeo，开发和调试阶段颇为麻烦，因为国内的防火墙墙掉了很多应用，vimeo也不例外，使用vpn虽然解决了这个问题，但文档和wordpress一样少的可怜。 经过5天的google和编码，还算有点收获，过几天不忙了整理点文档共享给wordpress的插件开发者们。感慨：好的开源项目，如果文档不完善，依然是一件痛苦的事情。]]></description>
			<content:encoded><![CDATA[<p>近期涉及到wordpress-MU版本的开发工作，因为用户对其插件buddypress比较感兴趣。看了两天的文档，感慨wordpress文档的匮乏。。。</p>
<p>除了少的可怜的官方文档，基于codex系统，很多页面都没有书写外，自己down了一份plugin development的pdf，看完这个pdf才有点插件开发的感觉。写了4-5个小插件，熟悉了下wordpress的hook（wp中称作action和filter）。感觉还是不如drupal的模块优雅和灵活，但定制一个系统还是比较简单的，最大的痛苦就是wordpress的api函数太多，而很多都没有文档，不知道该如何选择，看了很多sample，用的还都不一样，版本之间留有差异性，不像drupal，5.x和6.x之间分别保持统一。</p>
<p>目前看来，一个buddypress新建一个用户，数据库中会多出8个表，这个恐怖的事实在网上已经有商业插件解决，不知道这个项目到底是怎么回事？<br />
另外，视频方面采用了vimeo，开发和调试阶段颇为麻烦，因为国内的防火墙墙掉了很多应用，vimeo也不例外，使用vpn虽然解决了这个问题，但文档和wordpress一样少的可怜。</p>
<p>经过5天的google和编码，还算有点收获，过几天不忙了整理点文档共享给wordpress的插件开发者们。感慨：好的开源项目，如果文档不完善，依然是一件痛苦的事情。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.terrysco.com/node/wordpress-starting.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

