<?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>Neverland Blog</title>
	<atom:link href="http://www.ychong.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ychong.com</link>
	<description>&#62; Keep Thinking, and Keep Running. _</description>
	<lastBuildDate>Fri, 17 Feb 2012 11:34:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>不要嫁给程序员的若干个理由</title>
		<link>http://www.ychong.com/reasons-about-dont-marry-programmer/</link>
		<comments>http://www.ychong.com/reasons-about-dont-marry-programmer/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 05:58:00 +0000</pubDate>
		<dc:creator>Chong.Freeman</dc:creator>
				<category><![CDATA[Learning Notes]]></category>
		<category><![CDATA[Programmers]]></category>

		<guid isPermaLink="false">http://www.ychong.com/reasons-about-dont-marry-programmer/</guid>
		<description><![CDATA[　　之前看过好几篇《嫁给程序员的×个理由》的文章，也都说得很在理，很符合自身的情况..然后也妄自得意。而后接连看了几篇来自技术社区＆博客的文章，发现，接近完全客观地分析现实情况，远不是网友们所说的那样美好的。 　　以下笔者随手列举了几点，但没有什么华丽的调侃词眼。欢迎补充。 程序员逻辑思维特别强，以至于什么都用理性思维去对待，感性的女孩别想从程序员身上得到多少浪漫的元素； 程序员是 IT 界的民工，比工新阶层还要工薪，身处社会底层的他们，没办法满足女孩更多物质上的需求； 程序员拥有一颗呆脑袋，女孩在给程序员讲有趣的事时，或许他心里已经笑开了花，但脸上却只有淡淡的微笑，让人难堪，让人曲解； 程序员是也是廉价劳动力的一种，跟没背景的教师职工一样，今天是这样，十年内也是这样，二十年后还是这样，前途一片黑暗； 程序员在谈吐方面比不上一般人，因为平时难得讲话、接触的人少，不仅在日常交际中谈吐能力有限，女孩也更别想从他们身上听到什么甜言蜜语； 程序员一般都不多话，在别人面前总是自信不足，更别谈什么霸气，当然，他们也没法给女孩带来更多面子上的东西； 程序员的人际关系普遍较差，上班之余的时间都放在份外的程序工作以及个人内务上； 程序员加班的时间比别人多，有时深夜还要留在岗位上码代码，因此往往饮食和作息节律都不太正常； 程序员们体质较差，多数为四眼仔，原因归结于长期的静坐电脑面前的工作，以及缺乏体能锻炼的生活； 程序员们一般都长得不帅，长得帅的人一般不当程序员； …… 　　写到这里，我想，我还是继续单着吧。]]></description>
			<content:encoded><![CDATA[<p>　　之前看过好几篇《嫁给程序员的×个理由》的文章，也都说得很在理，很符合自身的情况..然后也妄自得意。而后接连看了几篇来自技术社区＆博客的文章，发现，接近完全客观地分析现实情况，远不是网友们所说的那样美好的。</p>
<p>　　以下笔者随手列举了几点，但没有什么华丽的调侃词眼。欢迎补充。</p>
<p><span id="more-103"></span></p>
<ol>
<li>程序员逻辑思维特别强，以至于什么都用理性思维去对待，感性的女孩别想从程序员身上得到多少浪漫的元素；</li>
<li>程序员是 IT 界的民工，比工新阶层还要工薪，身处社会底层的他们，没办法满足女孩更多物质上的需求；</li>
<li>程序员拥有一颗呆脑袋，女孩在给程序员讲有趣的事时，或许他心里已经笑开了花，但脸上却只有淡淡的微笑，让人难堪，让人曲解；</li>
<li>程序员是也是廉价劳动力的一种，跟没背景的教师职工一样，今天是这样，十年内也是这样，二十年后还是这样，前途一片黑暗；</li>
<li>程序员在谈吐方面比不上一般人，因为平时难得讲话、接触的人少，不仅在日常交际中谈吐能力有限，女孩也更别想从他们身上听到什么甜言蜜语；</li>
<li>程序员一般都不多话，在别人面前总是自信不足，更别谈什么霸气，当然，他们也没法给女孩带来更多面子上的东西；</li>
<li>程序员的人际关系普遍较差，上班之余的时间都放在份外的程序工作以及个人内务上；</li>
<li>程序员加班的时间比别人多，有时深夜还要留在岗位上码代码，因此往往饮食和作息节律都不太正常；</li>
<li>程序员们体质较差，多数为四眼仔，原因归结于长期的静坐电脑面前的工作，以及缺乏体能锻炼的生活；</li>
<li>程序员们一般都长得不帅，长得帅的人一般不当程序员；</li>
<li>……</li>
</ol>
<p>　　写到这里，我想，我还是继续单着吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ychong.com/reasons-about-dont-marry-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 3.3 中加载脚本与样式表的新途径</title>
		<link>http://www.ychong.com/wordpress-v-3-3-enqueue-scripts-and-styles/</link>
		<comments>http://www.ychong.com/wordpress-v-3-3-enqueue-scripts-and-styles/#comments</comments>
		<pubDate>Sat, 24 Dec 2011 21:45:00 +0000</pubDate>
		<dc:creator>Chong.Freeman</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Styles]]></category>

		<guid isPermaLink="false">http://www.ychong.com/wordpress-v-3-3-enqueue-scripts-and-styles/</guid>
		<description><![CDATA[　　WordPress 版本 3.3 发布已有一个星期了，前些天有朋友问到 WP 主题在加载脚本与样式表时报错的问题，报错内容如下（需开启 WP_DEBUG 模式）： Notice: wp_enqueue_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or init hooks. Please see Debugging in WordPress for more information. (This message was added in version 3.3.) 旧的加载方法 　　我之前发表过一篇《wp_enqueue_script()、wp_enqueue_style() 加载脚本与样式表》，主要讲的是在主题中正确加载脚本与样式表的基本方法，代码如下： &#60;?php function my_enqueue_scripts() { if( !is_admin ) { [...]]]></description>
			<content:encoded><![CDATA[<p>　　WordPress 版本 3.3 发布已有一个星期了，前些天有朋友问到 WP 主题在加载脚本与样式表时报错的问题，报错内容如下（需开启 <code>WP_DEBUG</code> 模式）：</p>
<blockquote><p>Notice: <code>wp_enqueue_script</code> was called incorrectly. Scripts and styles should not be registered or enqueued until the <code>wp_enqueue_scripts</code>, <code>admin_enqueue_scripts</code>, or init hooks. Please see Debugging in WordPress for more information. (This message was added in version 3.3.)</p></blockquote>
<p><span id="more-60"></span></p>
<h3>旧的加载方法</h3>
<p>　　我之前发表过一篇《<a href="http://www.ychong.com/wordpress-enqueue-scripts-and-styles/">wp_enqueue_script()、wp_enqueue_style() 加载脚本与样式表</a>》，主要讲的是在主题中正确加载脚本与样式表的基本方法，代码如下：</p>
<pre class="brush:php">&lt;?php
function my_enqueue_scripts() {
    if( !is_admin ) { // 前台加载的脚本与样式表
        // 取消加载 jquery 脚本
        wp_dequeue_script( 'jquery' );
        // 注册并加载 jquery 脚本
        wp_enqueue_script( 'jquery', 'http://code.jquery.com/jquery.min.js', array(), 'lastest', false );
        // 注册并加载 jquery-easing 脚本
        wp_enqueue_script( 'jquery-easing', get_template_directory_uri() . '/js/jquery.easing.js', array( 'jquery' ), '1.2', false );
    } else  { // 后台加载的脚本与样式表
        // 取消加载 jquery 脚本
        wp_dequeue_script( 'jquery' );
        // 注册并加载 jquery 脚本
        wp_enqueue_script( 'jquery', 'http://code.jquery.com/jquery.min.js', array(), 'lastest', false );
    }
}
// 添加回调函数到 init 动作上
add_action( 'init', 'my_enqueue_scripts' );
?&gt;</pre>
<h3>应用于 WP 3.3 版本的新方法</h3>
<p>　　在上面的代码中我们使用 <code>init</code> 动作来执行脚本＆样式表的加载代码，在 WordPress 的 3.3 版本中，这种操作将会被判错。在 3.3 版本中，执行加载代码的方法是<strong>通过专有的 <code>wp_enqueue_scripts</code> 和 <code>admin_enqueue_scripts</code> 动作来实现的</strong>（而非 <code>init</code> 或 <code>after_setup_theme</code> 等动作）。详细样例代码如下（执行效果等同于上面的旧版代码）：</p>
<pre class="brush:php">&lt;?php
function my_enqueue_scripts_frontpage() { // 前台加载的脚本与样式表
    // 取消加载 jquery 脚本
    wp_dequeue_script( 'jquery' );
    // 注册并加载 jquery 脚本
    wp_enqueue_script( 'jquery', 'http://code.jquery.com/jquery.min.js', array(), 'lastest', false );
    // 注册并加载 jquery-easing 脚本
    wp_enqueue_script( 'jquery-easing', get_template_directory_uri() . '/js/jquery.easing.js', array( 'jquery' ), '1.2', false );
}
function my_enqueue_scripts_dashboard() { // 后台加载的脚本与样式表
    // 取消加载 jquery 脚本
    wp_dequeue_script( 'jquery' );
    // 注册并加载 jquery 脚本
    wp_enqueue_script( 'jquery', 'http://code.jquery.com/jquery.min.js', array(), 'lastest', false );
}
// 添加回调函数到 wp_enqueue_scripts 和 admin_enqueue_scripts 动作上
add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts_frontpage' );
add_action( 'admin_enqueue_scripts', 'my_enqueue_scripts_dashboard' );
?&gt;</pre>
<p>　　与 WP 3.3 发布同时，WP 参考文档的 <a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_script" target="_blank" rel="nofollow">Function Reference/wp_enqueue_script</a> 与 <a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_style" target="_blank" rel="nofollow">Function Reference/wp_enqueue_style</a> 等页面，也及时得到了更新。新增提示内容如下：</p>
<blockquote><p><strong>Use the wp_enqueue_scripts action to call this function, or admin_enqueue_scripts to call it on the admin side.</strong> Calling it outside of an action can lead to problems. See #11526 <small>(http://core.trac.wordpress.org/ticket/11526)</small> for details.</p></blockquote>
<h3>更新的由来</h3>
<p>　　按说 WP 对主题规则做出修改底层核心这样的变动，必然导致不少主题＆插件必须及时跟进新版本，这样的代价不小。而实际上，尽管 WP 内建了 <code>wp_enqueue_scripts</code> 等这样规范而高效的函数来提高加载脚本与样式表的代码的合理性，但仍有小部分不遵守规则的代码出现在 WP 目录中，导致了一部分报错，甚至是安全问题。此次做出的调整，<strong>不仅是为了提高各种插件与主题的兼容性，而且也增强了 WP 全局代码部署的合理性以及一些安全问题。</strong></p>
<p>　　搞清楚了这些之后，我已立即对现有的两款已发布主题进行了更新提交。撰写此文章时，Nest 1.1.3 已经上线可下载，Concerto 1.0.1 仍处于审核状态。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ychong.com/wordpress-v-3-3-enqueue-scripts-and-styles/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Log on December 9th: Peaceful Life</title>
		<link>http://www.ychong.com/log-on-december-9th-2011/</link>
		<comments>http://www.ychong.com/log-on-december-9th-2011/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 05:19:00 +0000</pubDate>
		<dc:creator>Chong.Freeman</dc:creator>
				<category><![CDATA[Diary]]></category>

		<guid isPermaLink="false">http://www.ychong.com/log-on-december-9th-2011/</guid>
		<description><![CDATA[　　大学生活的确很精彩。大学的诸多元素都已体验过了，还差几样，不过也快了。开学这么久了，仍有很多朋友问我为什么来读建工，不管是在建院的同学，还是以前的朋友。我不想再重复这个原因，只想说，专业与学校都是次要的，关键的是过程。不管在哪儿度过大学生活，距离不是大问题，圈子不是大问题，同在广东，你们我们就是同在一个圈子里。不论大学生活到底怎样，大喜大悲，那都将是我生命里璀璨的一部分。若干年后，我依然会记得这个寝室、这所学校、这个城市，以及所有留下来的回忆，还有这些回忆中所经历过的人。 　　快期末考试了，大伙都进入了紧张的复习阶段。幸好学校开设了通宵自修室，开 OT 的人屈指不可数，通常在凌晨一两点两大自修室还几乎是坐满了人（一个自修室大概 50 个座位）。也听我别校的同学讲，就在前两天，考某科期末考，然后全宿舍集体通宵复习（不是说大学寝室里总有这么一两个积极学习分子么）。更有甚者，搬桌子抄写资料，或者到考场占据有利座位准备作弊。哈，跟《草样年华》里写的越来越吻合了。 　　敝人也不例外，每天的生活都是这样的忙碌而充实。什么奖学金的都是浮云，只求不挂科。 　　暑假到现在，除了 WordPress 模板开发，还有就是主攻 Web 前端。挺有意思的，也挺简单的。或许也正因为此，才不敢下定决心去往这条路走下去。毕竟现在业界中 Web 前端开发人员和 UID / UED 越来越多，本人在视觉设计和交互设计方面也很缺脑细胞。OK，再次希望跟电脑有关的东西，在我老去之前，都只是兴趣爱好而已。BTW，感谢这三四个月以来由上海 INN823 品牌设计教与我的那些，在此也算是为 weweloo 做个小广告吧。 　　每次跟老隆的那帮兄弟一起出来聚的时候，都倍感压力——九月份我们曾一起谈货源，做笔记本电脑的买卖。而今，货源质量好了，价格降低了，经营范围也扩大了，他们的销售成绩也都不错，但我——真的不想再继续做销售了，不是不喜欢还是没能力，而是先天条件不足。昨天刚刚碰到有同学来寝室里卖热水袋，一人手端满箱热水袋的箱子，一人拿着宣传单在询问我们。忽然让我想起了高一那些懵懂的日子，哈哈，纯粹的商品推销。 　　停用微博了，这几天有些不习惯。或许是早已适应了那种模式，从 Twitter 到饭否，从 YChong.com 到新浪微博。几句话，一个故事，一则新闻，一种状态，随时与朋友共享。不过还是喜欢原始的 WebLog 模式，完全是个人原因吧。至少它不像微博那样占据了太多时间，充斥了过多无用的信息。同时，这个重要的网络形象载体也非常易于管理。 　　挨踢挨踢，觉着变化似乎更快了，起码比读高中那会儿快。尤其是下半年，安卓系统更新到第 4 版了，HTML5 + CSS3 开始普及了，思科网络开始老了，开源成主流了，移动 Web 开发成大势了，火狐都要出第 10 版了，SEO 市场不仅饱和而且泛滥了，连凤姐都要被美国控告了，etc&#8230; 好吧，我也承认我是个技术控，就是热爱折腾。同时也希望毕业后能好找工作。。。 　　关于 Web 开发我还是想多说几句。我预计的是两年后我毕业出来之后的情况，不管是 Web 前端，还是 UID / UED，那时可能都会像该死的 SEO 一样，变得饱和、泛滥。但我个人还是更倾向于移动开发 / 移动 Web [...]]]></description>
			<content:encoded><![CDATA[<p>　　大学生活的确很精彩。大学的诸多元素都已体验过了，还差几样，不过也快了。开学这么久了，仍有很多朋友问我为什么来读建工，不管是在建院的同学，还是以前的朋友。我不想再重复这个原因，只想说，专业与学校都是次要的，关键的是过程。不管在哪儿度过大学生活，距离不是大问题，圈子不是大问题，同在广东，你们我们就是同在一个圈子里。不论大学生活到底怎样，大喜大悲，那都将是我生命里璀璨的一部分。若干年后，我依然会记得这个寝室、这所学校、这个城市，以及所有留下来的回忆，还有这些回忆中所经历过的人。</p>
<p><span id="more-62"></span></p>
<p>　　快期末考试了，大伙都进入了紧张的复习阶段。幸好学校开设了通宵自修室，开 OT 的人屈指不可数，通常在凌晨一两点两大自修室还几乎是坐满了人（一个自修室大概 50 个座位）。也听我别校的同学讲，就在前两天，考某科期末考，然后全宿舍集体通宵复习（不是说大学寝室里总有这么一两个积极学习分子么）。更有甚者，搬桌子抄写资料，或者到考场占据有利座位准备作弊。哈，跟《草样年华》里写的越来越吻合了。</p>
<p>　　敝人也不例外，每天的生活都是这样的忙碌而充实。什么奖学金的都是浮云，只求不挂科。</p>
<p>　　暑假到现在，除了 WordPress 模板开发，还有就是主攻 Web 前端。挺有意思的，也挺简单的。或许也正因为此，才不敢下定决心去往这条路走下去。毕竟现在业界中 Web 前端开发人员和 UID / UED 越来越多，本人在视觉设计和交互设计方面也很缺脑细胞。OK，再次希望跟电脑有关的东西，在我老去之前，都只是兴趣爱好而已。BTW，感谢这三四个月以来由上海 INN823 品牌设计教与我的那些，在此也算是为 weweloo 做个小广告吧。</p>
<p>　　每次跟老隆的那帮兄弟一起出来聚的时候，都倍感压力——九月份我们曾一起谈货源，做笔记本电脑的买卖。而今，货源质量好了，价格降低了，经营范围也扩大了，他们的销售成绩也都不错，但我——真的不想再继续做销售了，不是不喜欢还是没能力，而是先天条件不足。昨天刚刚碰到有同学来寝室里卖热水袋，一人手端满箱热水袋的箱子，一人拿着宣传单在询问我们。忽然让我想起了高一那些懵懂的日子，哈哈，纯粹的商品推销。</p>
<p>　　停用微博了，这几天有些不习惯。或许是早已适应了那种模式，从 Twitter 到饭否，从 YChong.com 到新浪微博。几句话，一个故事，一则新闻，一种状态，随时与朋友共享。不过还是喜欢原始的 WebLog 模式，完全是个人原因吧。至少它不像微博那样占据了太多时间，充斥了过多无用的信息。同时，这个重要的网络形象载体也非常易于管理。</p>
<p>　　挨踢挨踢，觉着变化似乎更快了，起码比读高中那会儿快。尤其是下半年，安卓系统更新到第 4 版了，HTML5 + CSS3 开始普及了，思科网络开始老了，开源成主流了，移动 Web 开发成大势了，火狐都要出第 10 版了，SEO 市场不仅饱和而且泛滥了，连凤姐都要被美国控告了，etc&#8230; 好吧，我也承认我是个技术控，就是热爱折腾。同时也希望毕业后能好找工作。。。</p>
<p>　　关于 Web 开发我还是想多说几句。我预计的是两年后我毕业出来之后的情况，不管是 Web 前端，还是 UID / UED，那时可能都会像该死的 SEO 一样，变得饱和、泛滥。但我个人还是更倾向于移动开发 / 移动 Web 开发，这一块，在国外也才刚刚处于元年。Lobo 兄也建议我走这行，他是个设计方面的天才。</p>
<blockquote><p>　　从没想过大学生活会如此的短。小时候只知道，小学六年、中学六年、大学四年甚至还可能不止，想着高考完了还要再读四年书，才能走向社会，太漫长了吧。而今，事实告诉我，属于我的大学生活，在校时长只有两年时间。呵呵。</p>
<p>　　海娟，不晓得你还好不。今年的 3 月 24 日，是最后一次见面的日期。这会儿你应该在读初三了。真心祝福……</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.ychong.com/log-on-december-9th-2011/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Coming soon: Nest Theme 1.1</title>
		<link>http://www.ychong.com/coming-soon-nest-theme-1-1/</link>
		<comments>http://www.ychong.com/coming-soon-nest-theme-1-1/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 07:31:46 +0000</pubDate>
		<dc:creator>Chong.Freeman</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.ychong.com/coming-soon-nest-theme-1-1/</guid>
		<description><![CDATA[According to all the comments about Nest Theme from the users, I&#8217;ve corrected the errors, and made the theme more useful and customizable. Thanks to everyone who does experience my works! Version 1.1.1 has some new features: Selective effect of multi-level navigation menu Using JavaScript (jQuery): Multi-level navigation menu Modifiable website info string ( replaces [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ychong.com/wp-content/uploads/2011/10/nest-theme-1-1-1-screenshot-300x225.png" title="Previewing Nest Theme 1.1.1" alt="Nest Theme 1.1.1 Screenshot" class="thumbnail" />According to all the comments about <a href="http://www.ychong.com/themes/">Nest Theme</a> from the users, I&#8217;ve corrected the errors, and made the theme more useful and customizable. Thanks to everyone who does experience my works!</p>
<p>Version 1.1.1 has some new features:</p>
<ul>
<li>Selective effect of multi-level navigation menu</li>
<li>Using JavaScript (jQuery): Multi-level navigation menu</li>
<li>Modifiable website info string ( replaces the default copyright string )</li>
<li>Arrow marks of parent menu items containing sub-menu</li>
<li>Fixed CSS compatibility in IE6 and IE7</li>
</ul>
<p>v1.1.1  <img src='http://www.ychong.com/wp-includes/images/smilies/icon_question.gif' alt=':?:' class='wp-smiley' />   Does it mean singles?? We all know the Singles&#8217; Day of the century (2011-11-11) is actually coming too!  <img src='http://www.ychong.com/wp-includes/images/smilies/icon_razz.gif' alt=':razz:' class='wp-smiley' />  </p>
<p>Theme Demo: <a href="http://www.ychong.com/demo/wordpress/" target="_blank">http://www.ychong.com/demo/wordpress/</a></p>
<p><span id="more-51"></span></p>
<h3>New theme is coming &#8230;</h3>
<p>Theme of YChong.com this moment is named &#8220;Neverland 2011&#8243;, it is another simple and fresh theme after Nest Theme. And I&#8217;ll add it to WordPress Theme Directory soon. So if you have any idea or advice, please don&#8217;t hesitate, just ORDER me to make it with your custom functionality!</p>
<p><center><img src="http://www.ychong.com/wp-content/uploads/2011/10/neverland-2011-theme-0.0.1-screenshot-600x450.png" title="Previewing Neverland 2011 Theme 0.0.1" alt="Neverland 2011 Theme 0.0.1 Screenshot" /></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ychong.com/coming-soon-nest-theme-1-1/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Discuz! X 中自定义 PHP 代码 (Backlinks.com) 添加方法</title>
		<link>http://www.ychong.com/discuz-x-backlinks-code/</link>
		<comments>http://www.ychong.com/discuz-x-backlinks-code/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 17:51:40 +0000</pubDate>
		<dc:creator>Chong.Freeman</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.ychong.com/discuz-x-backlinks-code/</guid>
		<description><![CDATA[　　Backlinks.com 是目前使用人数最多、最容易上手和使用的网页文字链接交易平台。 　　Discuz! X 系列作为国内使用最广泛的论坛门户建站软件，其中 Backlinks.com 的用户也不少。但是，也正是因为 Discuz! 强大的模板机制，直接导致了我们难以便捷地向 Discuz! 的站点页面中添加我们需要的 PHP 代码，甚至只是 JavaScript。 　　本文将向大家详细介绍如何利用 Discuz! 自带的模板 Hook （钩子）功能向各页面添加自定义代码（PHP、JavaScript 均可）。 　　此方法是基于 Discuz! 的插件功能来实现的，整个过程不修改 Discuz! 核心代码，方便易用。 Step 1: 制作自定义代码插件 　　编写文件 install.php、uninstall.php、validator.xml、discuz_plugin_backlinks.xml、backlinks.class.php。内容分别如下： 　　install.php 文件内容： &#60;?php $finish = true; ?&#62; 　　uninstall.php 文件内容： &#60;?php $finish = true; ?&#62; 　　validator.xml 文件内容： &#60;?xml version="1.0" encoding="UTF-8"?&#62; &#60;root&#62; &#60;item id="Title"&#62;&#60;![CDATA[Discuz! Plugin Validator]]&#62;&#60;/item&#62; &#60;item [...]]]></description>
			<content:encoded><![CDATA[<p>　　Backlinks.com 是目前使用人数最多、最容易上手和使用的网页文字链接交易平台。</p>
<p>　　Discuz! X 系列作为国内使用最广泛的论坛门户建站软件，其中 Backlinks.com 的用户也不少。但是，也正是因为 Discuz! 强大的模板机制，直接导致了我们难以便捷地向 Discuz! 的站点页面中添加我们需要的 PHP 代码，甚至只是 JavaScript。</p>
<p>　　本文将向大家详细介绍如何利用 Discuz! 自带的模板 Hook （钩子）功能向各页面添加自定义代码（PHP、JavaScript 均可）。</p>
<p><span id="more-48"></span></p>
<p>　　此方法是基于 Discuz! 的插件功能来实现的，整个过程不修改 Discuz! 核心代码，方便易用。</p>
<h3>Step 1: 制作自定义代码插件</h3>
<p>　　编写文件 install.php、uninstall.php、validator.xml、discuz_plugin_backlinks.xml、backlinks.class.php。内容分别如下：</p>
<p>　　<strong>install.php 文件内容</strong>：</p>
<pre class="brush:php">&lt;?php $finish = true; ?&gt;</pre>
<p>　　<strong>uninstall.php 文件内容</strong>：</p>
<pre class="brush:php">&lt;?php $finish = true; ?&gt;</pre>
<p>　　<strong>validator.xml 文件内容</strong>：</p>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;root&gt;
	&lt;item id="Title"&gt;&lt;![CDATA[Discuz! Plugin Validator]]&gt;&lt;/item&gt;
	&lt;item id="Version"&gt;&lt;![CDATA[X2]]&gt;&lt;/item&gt;
	&lt;item id="Data"&gt;
		&lt;item id="0"&gt;&lt;![CDATA[source/plugin/backlinks/backlinks.class.php]]&gt;&lt;/item&gt;
	&lt;/item&gt;
&lt;/root&gt;</pre>
<p>　　<strong>discuz_plugin_backlinks.xml 文件内容</strong>：</p>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;root&gt;
	&lt;item id="Title"&gt;&lt;![CDATA[Discuz! Plugin]]&gt;&lt;/item&gt;
	&lt;item id="Version"&gt;&lt;![CDATA[X2]]&gt;&lt;/item&gt;
	&lt;item id="Data"&gt;
		&lt;item id="plugin"&gt;
			&lt;item id="available"&gt;&lt;![CDATA[1]]&gt;&lt;/item&gt;
			&lt;item id="adminid"&gt;&lt;![CDATA[1]]&gt;&lt;/item&gt;
			&lt;item id="name"&gt;&lt;![CDATA[Backlinks.com Code Installation]]&gt;&lt;/item&gt;
			&lt;item id="identifier"&gt;&lt;![CDATA[backlinks]]&gt;&lt;/item&gt;
			&lt;item id="description"&gt;&lt;![CDATA[( N/A )]]&gt;&lt;/item&gt;
			&lt;item id="datatables"&gt;&lt;![CDATA[]]&gt;&lt;/item&gt;
			&lt;item id="directory"&gt;&lt;![CDATA[backlinks/]]&gt;&lt;/item&gt;
			&lt;item id="copyright"&gt;&lt;![CDATA[YChong.com]]&gt;&lt;/item&gt;
			&lt;item id="version"&gt;&lt;![CDATA[1.0]]&gt;&lt;/item&gt;
			&lt;item id="__modules"&gt;
				&lt;item id="0"&gt;
					&lt;item id="name"&gt;&lt;![CDATA[backlinks]]&gt;&lt;/item&gt;
					&lt;item id="menu"&gt;&lt;![CDATA[]]&gt;&lt;/item&gt;
					&lt;item id="url"&gt;&lt;![CDATA[]]&gt;&lt;/item&gt;
					&lt;item id="type"&gt;&lt;![CDATA[11]]&gt;&lt;/item&gt;
					&lt;item id="adminid"&gt;&lt;![CDATA[0]]&gt;&lt;/item&gt;
					&lt;item id="displayorder"&gt;&lt;![CDATA[0]]&gt;&lt;/item&gt;
					&lt;item id="navtitle"&gt;&lt;![CDATA[]]&gt;&lt;/item&gt;
					&lt;item id="navicon"&gt;&lt;![CDATA[]]&gt;&lt;/item&gt;
					&lt;item id="navsubname"&gt;&lt;![CDATA[]]&gt;&lt;/item&gt;
					&lt;item id="navsuburl"&gt;&lt;![CDATA[]]&gt;&lt;/item&gt;
				&lt;/item&gt;
			&lt;/item&gt;
		&lt;/item&gt;
		&lt;item id="version"&gt;&lt;![CDATA[X2]]&gt;&lt;/item&gt;
		&lt;item id="installfile"&gt;&lt;![CDATA[install.php]]&gt;&lt;/item&gt;
		&lt;item id="uninstallfile"&gt;&lt;![CDATA[uninstall.php]]&gt;&lt;/item&gt;
		&lt;item id="var"&gt;
		&lt;/item&gt;
	&lt;/item&gt;
&lt;/root&gt;</pre>
<p>　　<strong>backlinks.class.php 文件内容</strong>：</p>
<pre class="brush:php">&lt;?php

class plugin_backlinks_forum extends plugin_backlinks {
	function index_side_bottom_output() {
		$output = '';
		$output .= '&lt;div id="portal_block_74" class="block move-span"&gt;&lt;div style="background-image: url(static/image/common/title.png); background-repeat: repeat;" class="blocktitle title"&gt;&lt;span class="titletext" style="margin-left: 10px; font-size: 12px;"&gt;友情链接&lt;/span&gt;&lt;/div&gt;&lt;div id="portal_block_74_content" class="dxb_bc"&gt;&lt;div class="module cl ml mls"&gt;';

// ===== Backlinks.com 代码 (修改后）开始 =====

// THE FOLLOWING BLOCK IS USED TO RETRIEVE AND DISPLAY LINK INFORMATION.
// PLACE THIS ENTIRE BLOCK IN THE AREA YOU WANT THE DATA TO BE DISPLAYED.

// MODIFY THE VARIABLES BELOW:
// The following variable defines whether links are opened in a new window
// (1 = Yes, 0 = No)
$OpenInNewWindow = "1";

// # DO NOT MODIFY ANYTHING ELSE BELOW THIS LINE!
// ----------------------------------------------
$BLKey = "";

if(strlen($_SERVER['SCRIPT_URI'])){
	$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_URI'].((strlen($_SERVER['QUERY_STRING']))?'?'.$_SERVER['QUERY_STRING']:'');
}

if(!strlen($_SERVER['REQUEST_URI'])){
	$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'].((strlen($_SERVER['QUERY_STRING']))?'?'.$_SERVER['QUERY_STRING']:'');
}

$QueryString  = "LinkUrl=".urlencode((($_SERVER['HTTPS']=='on')?'https://':'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
$QueryString .= "&#038;Key=" .urlencode($BLKey);
$QueryString .= "&#038;OpenInNewWindow=" .urlencode($OpenInNewWindow);

//if(intval(get_cfg_var('allow_url_fopen')) &#038;&#038; function_exists('readfile')) {
//	@readfile("http://www.backlinks.com/engine.php?".$QueryString);
//}
//elseif(intval(get_cfg_var('allow_url_fopen')) &#038;&#038; function_exists('file')) {
if(intval(get_cfg_var('allow_url_fopen')) &#038;&#038; function_exists('file')) {
	if($content = @file("http://www.backlinks.com/engine.php?".$QueryString))
		$output .= @join('', $content);
}
elseif(function_exists('curl_init')) {
	$ch = curl_init ("http://www.backlinks.com/engine.php?".$QueryString);
	curl_setopt ($ch, CURLOPT_HEADER, 0);
	curl_exec ($ch);
	if(curl_error($ch))
		$output .= "Error processing request";
	curl_close ($ch);
}
else {
	$output .= "It appears that your web host has disabled all functions for handling remote pages and as a result the BackLinks software will not function on your web page. Please contact your web host for more information.";
}

// ===== Backlinks.com 代码 (修改后）结束 =====

		$output .= '&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;';
		return $output;
	}
}

?&gt;</pre>
<p>　　此处解释一下 Backlinks.com 提供的 PHP 代码结构。这段代码通过将唯一的识别码 <code>$BLKey</code> 以及当前页面 URL 等信息传送到 Backlinks.com，返回内容后直接显示在当前区域。代码共用了三个判断来兼容各种环境，这三个函数都是用来请求远程 HTTP 数据的。第一个是 <code>readfile</code> 函数，它取得参数中 URL 返回的数据后，直接打印在当前 HTML 位置，而不是输出到返回值（返回值是内容的长度）；第二个是 <code>file</code> 函数，它返回的是一个将参数 URL 返回的数据以行分割的数组；第三个是 <code>curl</code> 系列函数，除非前面有 <code>curl_setopt($ch, CUROPT_RETURNTRANSFER,1);</code> ，否则该函数将直接在当前 HTML 位置打印返回的数据。</p>
<p>　　类中函数 <code>index_side_bottom_output()</code> 的意义是，捕捉模板中名为 <code>index_side_bottom</code> 的“钩子”，并在此“钩子”所在的位置执行函数 <code>index_side_bottom_output()</code>。我们也正是利用这一途径，将 Backlinks.com 的返回代码输出到页面中。</p>
<h3>Step 2: 修改 Backlinks.com 提供的 PHP 代码</h3>
<p>　　为了使程序依照我们的期望，在固定的模板 Hook 中显示返回的数据内容，我们需要修改 Backlinks.com 提供的 PHP 代码，使之将返回的数据内容写入 Hook 回调函数的返回值中，而不是直接在当前 HTML 输出位置打印数据内容。</p>
<p>　　找到代码片段的中部：</p>
<pre class="brush:php">if(intval(get_cfg_var('allow_url_fopen')) &#038;&#038; function_exists('readfile')) {
	@readfile("http://www.backlinks.com/engine.php?".$QueryString);
}
elseif(intval(get_cfg_var('allow_url_fopen')) &#038;&#038; function_exists('file')) {</pre>
<p>　　修改为：</p>
<pre class="brush:php">if(intval(get_cfg_var('allow_url_fopen')) &#038;&#038; function_exists('file')) {</pre>
<p>　　此处修改的含义为：去除对第一个函数 <code>readfile</code> 的判断（因为 <code>readfile</code> 函数不论如何都会直接打印返回的数据，而不能写入到某变量中），使之直接判断 <code>file</code> 函数和 <code>curl</code> 系列函数。</p>
<p>　　然后，将代码片段中的所有 <code>print</code> 替换为 <code>$output .= </code> ，意为将返回的数据内容追加到变量 <code>$output</code> 中（结尾直接将变量 <code>$output</code> 作为返回值返回给 Hook 回调函数）。</p>
<h3>Step 3: 安装、激活插件</h3>
<p>　　将上述的四个文件上传到 /source/plugin/backlinks 目录中，进入 Discuz! X 管理后台，点选安装新插件 Backlinks.com Code Installation 1.0。</p>
<p><img src="http://www.ychong.com/wp-content/uploads/2011/10/20111007-discuz-x-backlinks-code-01.png" alt="Discuz! X 中自定义 PHP 代码 (Backlinks.com) 添加方法" /></p>
<p><img src="http://www.ychong.com/wp-content/uploads/2011/10/20111007-discuz-x-backlinks-code-02.png" alt="Discuz! X 中自定义 PHP 代码 (Backlinks.com) 添加方法" /></p>
<p>　　完成后更新缓存，进入站点首页即可看到效果。</p>
<h3>本文附件</h3>
<ul>
<li><a href="http://www.ychong.com/wp-content/uploads/2011/10/20111007-backlinks-code-installation-plugin-utf8.rar">插件源代码：Backlinks.com Code Installation (UTF8 版)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ychong.com/discuz-x-backlinks-code/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Log on October 2nd</title>
		<link>http://www.ychong.com/log-on-october-2nd-2011/</link>
		<comments>http://www.ychong.com/log-on-october-2nd-2011/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 13:12:29 +0000</pubDate>
		<dc:creator>Chong.Freeman</dc:creator>
				<category><![CDATA[Diary]]></category>

		<guid isPermaLink="false">http://www.ychong.com/?p=130</guid>
		<description><![CDATA[　　话说更新 Blog 文章，已成了鄙人必须完成的周期性任务。这本不符合我的理念，虽然 Neverland 有那么点营利性质，但这绝不是一个营利性网站。首页的 description 标签怎么写的来着，“A harmony land to experience our enthusiasms.”，这需要坚持，勉强得不来幸福。 　　都说建院条件差，的确是有那么点，但我还是很喜欢建院这个环境，当然也不是出于新鲜感。除了校区小了点，人际圈子窄了点，地理位置偏僻了点，交通出行麻烦了点，其他都挺好的，学业压力不大，人文素质团结，设施设备俱全，空气比市区好，etc. 来建院读书真是个不悔的选择。 　　这阵子跟许多朋友都有联系，包括一些之前难得一聊的同窗。有时可以听到含有诸如“空虚”、“迷茫”之类字眼的抱怨。话说鄙人也是单枪匹马走入建院，亦是手无寸铁，但过得仍然很充实。都说快乐才是最重要的，的确，我做到了，我过得很快乐，相信接下来的日子里也是。学业刚刚开学，除了大量的安慰和大量的被安慰，剩下的也是为了打发自己。翻越了万重山来自 @小坦克ing 的无敌关心，告诉我们，文字的力量真的不容小觑。 　　回到家里，忽然觉得对 Web 开发有点抵触，也不愿去点开那个 WAMP 启动命令。是不是因为半个多月没写程序的原因进入不了状态，还是其他外因所致？不得而知，规划就是规划，即使赶不上变化，也要按照原则一步一步走，不然同样会犯错，产生所谓的“迷茫”。很多很多事情都不如意，家里的，自己的，朋友的，越是去想越是难受，也思考不出个什么结果。很多事情都是没办法解决的，甚至不存在“解决”这个概念，只能脚踏实地地去面对、去承担，不逃避。很多朋友都说我变化很大，跟高中时比起来，不管是内在的性格，还是外在的形象，都往积极的方向改变了。哈，还好，没往以前那个死样子恶化下去。 　　挤不出东西了，不知该写些什么了。生活平淡无趣？那倒不会，要说的话能说上半天。词穷无墨？貌似是的，文学的瓢盆丢了不少，想有多华丽就做梦吧，用程序语言来表达或许是个不错的选择。 　　就写到这儿吧，表示对目前的生活很满足。 来自程序员 @ychongsaytc 的吐槽： 　　不要在一天中的任何一刻作无用的、过于感性的驻足，因为，无论如何，生活都还要向前走。]]></description>
			<content:encoded><![CDATA[<p>　　话说更新 Blog 文章，已成了鄙人必须完成的周期性任务。这本不符合我的理念，虽然 Neverland 有那么点营利性质，但这绝不是一个营利性网站。首页的 description 标签怎么写的来着，“A harmony land to experience our enthusiasms.”，这需要坚持，勉强得不来幸福。</p>
<p><span id="more-130"></span></p>
<p>　　都说建院条件差，的确是有那么点，但我还是很喜欢建院这个环境，当然也不是出于新鲜感。除了校区小了点，人际圈子窄了点，地理位置偏僻了点，交通出行麻烦了点，其他都挺好的，学业压力不大，人文素质团结，设施设备俱全，空气比市区好，etc. 来建院读书真是个不悔的选择。</p>
<p>　　这阵子跟许多朋友都有联系，包括一些之前难得一聊的同窗。有时可以听到含有诸如“空虚”、“迷茫”之类字眼的抱怨。话说鄙人也是单枪匹马走入建院，亦是手无寸铁，但过得仍然很充实。都说快乐才是最重要的，的确，我做到了，我过得很快乐，相信接下来的日子里也是。学业刚刚开学，除了大量的安慰和大量的被安慰，剩下的也是为了打发自己。翻越了万重山来自 @小坦克ing 的无敌关心，告诉我们，文字的力量真的不容小觑。</p>
<p>　　回到家里，忽然觉得对 Web 开发有点抵触，也不愿去点开那个 WAMP 启动命令。是不是因为半个多月没写程序的原因进入不了状态，还是其他外因所致？不得而知，规划就是规划，即使赶不上变化，也要按照原则一步一步走，不然同样会犯错，产生所谓的“迷茫”。很多很多事情都不如意，家里的，自己的，朋友的，越是去想越是难受，也思考不出个什么结果。很多事情都是没办法解决的，甚至不存在“解决”这个概念，只能脚踏实地地去面对、去承担，不逃避。很多朋友都说我变化很大，跟高中时比起来，不管是内在的性格，还是外在的形象，都往积极的方向改变了。哈，还好，没往以前那个死样子恶化下去。</p>
<p>　　挤不出东西了，不知该写些什么了。生活平淡无趣？那倒不会，要说的话能说上半天。词穷无墨？貌似是的，文学的瓢盆丢了不少，想有多华丽就做梦吧，用程序语言来表达或许是个不错的选择。</p>
<p>　　就写到这儿吧，表示对目前的生活很满足。</p>
<blockquote><p>来自程序员 @ychongsaytc 的吐槽：</p>
<p>　　不要在一天中的任何一刻作无用的、过于感性的驻足，因为，无论如何，生活都还要向前走。</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.ychong.com/log-on-october-2nd-2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>wp_enqueue_script()、wp_enqueue_style() 加载脚本与样式表</title>
		<link>http://www.ychong.com/wordpress-enqueue-scripts-and-styles/</link>
		<comments>http://www.ychong.com/wordpress-enqueue-scripts-and-styles/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 05:27:00 +0000</pubDate>
		<dc:creator>Chong.Freeman</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Styles]]></category>

		<guid isPermaLink="false">http://www.ychong.com/wordpress-enqueue-script-and-styles/</guid>
		<description><![CDATA[　　WordPress 版本 3.3 中，对主题加载脚本与样式表的过程强制要求在 action wp_enqueue_scripts 和 admin_enqueue_scripts 进行处理，详细内容请见：WordPress 3.3 中加载脚本与样式表的新途径（http://www.ychong.com/wordpress-v-3-3-enqueue-scripts-and-styles/）。 　　在许多场合中，不管是制作修改主题或插件，我们都需要调用一些 JavaScript 库，或者样式表等。这时，我们不应该直接去修改主题的 header.php，或者添加代码到 wp_head() 或 wp_footer() 钩子上，而是要使用 WordPress 官方文档建议使用的 WP 内建的 wp_enqueue_script() 和 wp_enqueue_style() 等函数进行操作。 　　本文将详细介绍这几个函数的作用和标准用法，以及其他等效办法的利弊。 函数：wp_enqueue_script() 　　函数用法： &#60;?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?&#62; 　　参数解释： $handle：用于区别 JS 名称，即标识字串 (string)； $src：JS 的文件 URL (string)； $deps：加载的 JS 所依存的其他 JS 标识字串数组 (array:string, 非必需)； [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">==================== The following content was written on December 25th, 2011  ====================</p>
<p>　　WordPress 版本 3.3 中，对主题加载脚本与样式表的过程强制要求在 action <code>wp_enqueue_scripts</code> 和 <code>admin_enqueue_scripts</code> 进行处理，详细内容请见：<a href="http://www.ychong.com/wordpress-v-3-3-enqueue-scripts-and-styles/">WordPress 3.3 中加载脚本与样式表的新途径</a>（http://www.ychong.com/wordpress-v-3-3-enqueue-scripts-and-styles/）。</p>
<p style="text-align: center;">==================== The following content was written on September 10th, 2011  ====================</p>
<p><img src="http://www.ychong.com/wp-content/uploads/2011/09/20110910-wordpress-enqueue-script-styles.png" alt="WordPress Functions to Enqueue Scripts and Styles" class="thumbnail" />　　在许多场合中，不管是制作修改主题或插件，我们都需要调用一些 JavaScript 库，或者样式表等。这时，我们不应该直接去修改主题的 header.php，或者添加代码到 <code>wp_head()</code> 或 <code>wp_footer()</code> 钩子上，而是要使用 WordPress 官方文档建议使用的 WP 内建的 <strong><code>wp_enqueue_script()</code></strong> 和 <strong><code>wp_enqueue_style()</code></strong> 等函数进行操作。</p>
<p>　　本文将详细介绍这几个函数的作用和标准用法，以及其他等效办法的利弊。</p>
<p><span id="more-94"></span></p>
<h3>函数：<code>wp_enqueue_script()</code></h3>
<p>　　函数用法：</p>
<pre class="brush:php">&lt;?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?&gt;</pre>
<p>　　参数解释：</p>
<ul>
<li><strong><code>$handle</code></strong>：用于区别 JS 名称，即标识字串 (string)；</li>
<li><strong><code>$src</code></strong>：JS 的文件 URL (string)；</li>
<li><strong><code>$deps</code></strong>：加载的 JS 所依存的其他 JS 标识字串数组 (array:string, 非必需)；</li>
<li><strong><code>$ver</code></strong>：JS 的版本号，留空则使用当前 WP 版本号 (string, 非必需)；</li>
<li><strong><code>$in_footer</code></strong>：是否放置到网页 HTML 底部加载 (boolean, 非必需)。</li>
</ul>
<h3>函数：<code>wp_enqueue_style()</code></h3>
<p>　　函数用法：</p>
<pre class="brush:php">&lt;?php wp_enqueue_style( $handle, $src, $deps, $ver, $media ); ?&gt;</pre>
<p>　　参数解释：</p>
<ul>
<li><strong><code>$handle</code></strong>：用于区别 CSS 的名称，即标识字串 (string)；</li>
<li><strong><code>$src</code></strong>：CSS 的文件 URL (string)；</li>
<li><strong><code>$deps</code></strong>：加载的 CSS 所依存的其他 CSS 标识字串数组 (array:string, 非必需)；</li>
<li><strong><code>$ver</code></strong>：CSS 文件的版本号，留空则使用当前 WP 版本号 (string, 非必需)；</li>
<li><strong><code>$media</code></strong>：用于加载 CSS 的头部标签 link 的 media 参数值 (string, 非必需)。</li>
</ul>
<h3>示例</h3>
<pre class="brush:php">&lt;?php
function my_enqueue_scripts() {
    if( !is_admin ) { // 前台加载的脚本与样式表
        // 去除已注册的 jquery 脚本
        wp_deregister_script( 'jquery' );
        // 注册 jquery 脚本
        wp_register_script( 'jquery', 'http://code.jquery.com/jquery.min.js', array(), 'lastest', false );
        // 提交加载 jquery 脚本
        wp_enqueue_script( 'jquery' );
        // 注册 jquery-easing 脚本
        wp_register_script( 'jquery-easing', get_template_directory_uri() . '/js/jquery.easing.js', array( 'jquery' ), '1.2', false );
        // 提交加载 jquery-easing 脚本
        wp_enqueue_script( 'jquery-easing' );
        // 注册并加载 jquery-bxSlider 脚本
        wp_enqueue_script( 'jquery-bxSlider', get_template_directory_uri() . '/js/jquery.bxSlider.min.js', array( 'jquery', 'jquery-easing' ), '3.0', false );
        // 注册并加载 jquery-bxSlider 样式表
        wp_enqueue_style( 'jquery-bxSlider', get_template_directory_uri() . '/css/jquery.bxSlider.css', array(), '3.0', 'screen' );
    } else  { // 后台加载的脚本与样式表
        // 取消加载 jquery 脚本
        wp_dequeue_script( 'jquery' );
        // 注册并加载 jquery 脚本
        wp_enqueue_script( 'jquery', 'http://code.jquery.com/jquery.min.js', array(), 'lastest', false );
    }
}
// 添加回调函数到 init 动作上
add_action( 'init', 'my_enqueue_scripts' );
?&gt;</pre>
<h3>利与弊？</h3>
<p>　　在以往我们制作 WP 主题的时候，当引入 JS 文件或 CSS 文件时，通常是直接编辑 header.php 文件，然后将相应的页面头部 HTML 代码添加进去。或者利用 <code>wp_head()</code> 函数钩子插入 HTML 代码。</p>
<p>　　遇到一个插件或主题功能比较多的 WordPres 网站时，如果仍使用自行插入代码的方式引入 JS / CSS，将可能导致 JS 的重载和 CSS 的重定义或覆盖的后果。而使用 <code>wp_enqueue_script()</code> 和 <code>wp_enqueue_style()</code> 等函数操作头部引用，将输出 HTML 语句的工作交给 WP 内核去完成（几乎所有插件都这么做），不仅能够避免重复加载的现象出现，也可实现按 PHP 脚本顺序，任意修改、覆盖、删除即将被加载的 JS 文件和 CSS 文件。</p>
<h3>总结</h3>
<p>　　在 WordPress 模板功能强大发展的今天，<strong>我们应尽量使用 WordPress 内建的众多的模板函数标签，实现主题或插件的各种功能。</strong>同时，我们更必须避免修改 WP 内核代码的可能性，WordPress 的 action 和 filter 功能已经格外强大了。</p>
<p>　　WordPress 官方参考文档链接：</p>
<ul>
<li><a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_script" target="_blank" rel="nofollow">Function Reference/wp_enqueue_script</a></li>
<li><a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_style" target="_blank" rel="nofollow">Function Reference/wp_enqueue_style</a></li>
<li><a href="http://codex.wordpress.org/Function_Reference/wp_register_script" target="_blank" rel="nofollow">Function Reference/wp_register_script</a></li>
<li><a href="http://codex.wordpress.org/Function_Reference/wp_deregister_script" target="_blank" rel="nofollow">Function Reference/wp_deregister_script</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ychong.com/wordpress-enqueue-scripts-and-styles/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>致我的兄弟、好友、以及家人们</title>
		<link>http://www.ychong.com/to-my-brothers-and-families-2011/</link>
		<comments>http://www.ychong.com/to-my-brothers-and-families-2011/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 06:23:00 +0000</pubDate>
		<dc:creator>Chong.Freeman</dc:creator>
				<category><![CDATA[Growing]]></category>

		<guid isPermaLink="false">http://www.ychong.com/to-my-brothers-and-families-2011/</guid>
		<description><![CDATA[　　高中生涯已经匆匆结束，大家未来几年的发展动向也已基本确定。我在高考中的分数为 437 分（理科），被广东建设职业技术学院（南校区）建筑工程技术专业录取，校址在广州白云区。本人也即将更换手机号码，大多数人我已发去短信告知。QQ、电邮，随时就绪。 　　本人是一名独生子，自幼由父母一手带大。要说有什么依靠，除了父母，以及我的兄弟、铁杆们，恐怕别无他人它物。我契有一个姐姐、一个妹妹，身边还有一个她。不论如何，与 Hxy 的这段路，我会勇敢地走下去。 　　我袁某在此号召各路兄弟好友，日后能多多联系，未来几年大家各自努力发展，在互助中成就共赢佳绩。同时袁某也立下誓言，在大学三年中，绝不泡新女友，而影响了自身发展，导致众多不可预知后果发生。未来的事谁也说不准，但希望我们都有这样一个决心，努力去争取我们理想的目标，无须相信命运，因为无论结果大喜或大悲，一切皆为命运。]]></description>
			<content:encoded><![CDATA[<p>　　高中生涯已经匆匆结束，大家未来几年的发展动向也已基本确定。我在高考中的分数为 437 分（理科），被广东建设职业技术学院（南校区）建筑工程技术专业录取，校址在广州白云区。本人也即将更换手机号码，大多数人我已发去短信告知。QQ、电邮，随时就绪。</p>
<p>　　本人是一名独生子，自幼由父母一手带大。要说有什么依靠，除了父母，以及我的兄弟、铁杆们，恐怕别无他人它物。我契有一个姐姐、一个妹妹，身边还有一个她。不论如何，与 Hxy 的这段路，我会勇敢地走下去。</p>
<p>　　我袁某在此号召各路兄弟好友，日后能多多联系，未来几年大家各自努力发展，在互助中成就共赢佳绩。同时袁某也立下誓言，在大学三年中，绝不泡新女友，而影响了自身发展，导致众多不可预知后果发生。未来的事谁也说不准，但希望我们都有这样一个决心，努力去争取我们理想的目标，无须相信命运，因为无论结果大喜或大悲，一切皆为命运。</p>
<p><span id="more-96"></span></p>
<audio src="http://data.soarwin.com/sounds/collections/beyond.-.zongyouai.mp3" autoplay="autoplay" controls="controls" preload="preload" width="300" height="32" style="width: 300px; height: 32px;"><embed src="http://www.51119.com/play/swf/03.swf?soundFile=http%3A%2F%2Fdata.soarwin.com%2Fsounds%2Fcollections%2Fbeyond.-.zongyouai.mp3&autostart=yes&loop=no&bg=0xF3F3F3&leftbg=0xC1C1C1&lefticon=0xF2F2F2&rightbg=0xC1C1C1&rightbghover=0xD2D2D2&righticon=0xF2F2F2&righticonhover=0xFFFFFF&text=0xC1C1C1&slider=0xC1C1C1&track=0xFFFFFF&border=0xFFFFFF&loader=0xE5E5E5" width="300" height="32" quality="high" mode="transparent" type="application/x-shockwave-flash"></embed></audio>
]]></content:encoded>
			<wfw:commentRss>http://www.ychong.com/to-my-brothers-and-families-2011/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
<enclosure url="http://data.soarwin.com/sounds/collections/beyond.-.zongyouai.mp3" length="9627319" type="audio/mpeg" />
		</item>
		<item>
		<title>WordPress 主题发布：Nest</title>
		<link>http://www.ychong.com/wordpress-theme-nest-published/</link>
		<comments>http://www.ychong.com/wordpress-theme-nest-published/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 07:30:20 +0000</pubDate>
		<dc:creator>Chong.Freeman</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.ychong.com/?p=124</guid>
		<description><![CDATA[　　笔者的 WP 主题处女作 Nest 已于 2011 年 7 月 10 日正式被 WordPress 官方添加至其主题目录中。 　　这款主题笔者从今年三月份就开始提交了，一直审核不通过。从起初的机器审核（Automated Theme Scanning）到后面的人工审核（Test Data 等），前后共历时约四个月，更换了四个版本号（从 1.0.0 到 1.0.4）。期间不断修改和增删了许多功能代码。 　　本文将简要介绍在这漫长的提交过程中，审核机制所报出的各种问题和其相应的解决办法，以及得出的一些结论。望大家能从中得益。 　　今年年初以来，WordPress 官方突然加强了对主题的审核机制（不知插件审核是否变严格了？），使得许多新主题或是旧主题更新都难以通过审核。春节前后更是耗时漫长，据说一次 TracTicket 要两个星期才有回复，但现在不会了。:-) 主题审核的部分苛刻条件 　　此处主要是列举了最近变严格了的条例： W3C CSS and HTML Validation：每个页面都必须完完全全地通过。 主题文件中出现的函数和全局变量（global variables）的名称，必须以主题英文名加下划线作为前缀，缺一不可。（如 nest_theme_options_do_page()，$nest_options 等） 文字域（Text domain problems）：函数 load_theme_textdomain 我们一般是在 add_action( 'after_setup_theme', ... 中调用的，问题仍然出现的原因最大可能是在脚本中直接使用了诸如“_e( 'Home' );”而非“_e( 'Home', 'nest' );”的翻译代码。简单讲就是 WordPress 程序自带的语言文字域是不能给主题使用的，即使看起来没问题。 WP 单元测试（Test [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ychong.com/wp-content/uploads/2011/07/20110711-theme-nest-screenshot.png" alt="WP Theme Nest Screenshot" title="WP Theme: Nest" class="thumbnail" />　　笔者的 WP 主题处女作 Nest 已于 2011 年 7 月 10 日正式被 WordPress 官方添加至其主题目录中。</p>
<p>　　这款主题笔者从今年三月份就开始提交了，一直审核不通过。从起初的机器审核（Automated Theme Scanning）到后面的人工审核（Test Data 等），前后共历时约四个月，更换了四个版本号（从 1.0.0 到 1.0.4）。期间不断修改和增删了许多功能代码。</p>
<p>　　本文将简要介绍在这漫长的提交过程中，审核机制所报出的各种问题和其相应的解决办法，以及得出的一些结论。望大家能从中得益。</p>
<p><span id="more-124"></span></p>
<p>　　今年年初以来，WordPress 官方突然加强了对主题的审核机制（不知插件审核是否变严格了？），使得许多新主题或是旧主题更新都难以通过审核。春节前后更是耗时漫长，据说一次 TracTicket 要两个星期才有回复，但现在不会了。:-)</p>
<h3>主题审核的部分苛刻条件</h3>
<p>　　此处主要是列举了最近变严格了的条例：</p>
<ul>
<li>W3C CSS and HTML Validation：每个页面都必须完完全全地通过。</li>
<li>主题文件中出现的函数和全局变量（global variables）的名称，必须以主题英文名加下划线作为前缀，缺一不可。（如 <code>nest_theme_options_do_page()</code>，<code>$nest_options</code> 等）</li>
<li>文字域（Text domain problems）：函数 <code>load_theme_textdomain</code> 我们一般是在 <code>add_action( 'after_setup_theme', ...</code> 中调用的，问题仍然出现的原因最大可能是在脚本中直接使用了诸如“<code>_e( 'Home' );</code>”而非“<code>_e( 'Home', 'nest' );</code>”的翻译代码。简单讲就是 WordPress 程序自带的语言文字域是不能给主题使用的，即使看起来没问题。
<li>WP 单元测试（Test Data）必须全部达到要求。</li>
<li>style.css 文件的头部主题信息中，每一项的冒号后不能有空格，否则字段将被识别为空。</li>
</ul>
<p>　　以上是本主题在提交过程中遇到的比较囧的问题。</p>
<h3>必备基础条件</h3>
<p>　　如果您正准备提交主题，请您根据以下几点要求测试您的主题：</p>
<ol>
<li>安装 Theme Check 插件，并在必要时进行测试。到 WP 上传的第一轮审核机制即此。</li>
<li>到 WP Theme Unit Test（<a href="http://codex.wordpress.org/Theme_Unit_Test" target="_blank" rel="nofollow">http://codex.wordpress.org/Theme_Unit_Test</a>）下载 test-data 文件并用 WP 内置的导入功能导入全部数据（包括所有附件和媒体），然后按照 Theme Unit Test 页面中要求的 WordPress Settings 逐一设置好 WP，并在需要时进行全面测试（主要看各篇文章内容中的要求）。</li>
<li>设置 WP 配置文件 wp-config.php 中的常量“<code>define('WP_DEBUG', true);</code>”。</li>
<li>W3C CSS and HTML Validation。这个不用多说，值得注意的就是测试用的数据最好是 WP Theme Unit Test 用的 Test Data，然后就是禁用全部插件。</li>
</ol>
<h3>Nest 主题相关链接</h3>
<ul>
<li><a href="http://themes.trac.wordpress.org/query?col=id&#038;col=summary&#038;col=keywords&#038;col=status&#038;col=resolution&#038;keywords=~theme-nest&#038;order=id" target="_blank" rel="nofollow">点此查看 Nest 主题所有 TracTickets</a></li>
<li><a href="http://wordpress.org/extend/themes/nest/" target="_blank" rel="nofollow">Nest 主题介绍与下载（WP 官方）</a></li>
<li><a href="http://www.ychong.com/?page_id=70" target="_blank" rel="nofollow">Nest 主题介绍（本站）</a></li>
<li><a href="http://wp-themes.com/nest/" target="_blank" rel="nofollow">Nest 主题演示（WP 官方）</a></li>
<li><a href="http://www.ychong.com/demo/wordpress/?wptheme=Nest" target="_blank" rel="nofollow">Nest 主题演示（本站）</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ychong.com/wordpress-theme-nest-published/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>在普通电脑上安装 Mac OS X Snow Leopard （苹果雪豹）教程</title>
		<link>http://www.ychong.com/mac-os-x-snow-leopard-on-regular-pc/</link>
		<comments>http://www.ychong.com/mac-os-x-snow-leopard-on-regular-pc/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 06:44:51 +0000</pubDate>
		<dc:creator>Chong.Freeman</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Snow Leopard]]></category>

		<guid isPermaLink="false">http://www.ychong.com/?p=119</guid>
		<description><![CDATA[　　自 2009 年 8 月份苹果发布 Mac OS X Snow Leopard 操作系统以来，其对各类 PC 的兼容性的大大提升广受好评。同时也有许多苹果机的用户，因为不习惯苹果系统的使用风格等其它原因，在苹果电脑上安装 Windows XP 等 x86 操作系统，并且都有苹果官方提供便捷的途径。而果饭们却到现在也没有等到官方允许普通电脑安装 Mac 操作系统的途径公布。 　　在此，本文将详细介绍如何在没有U盘或移动硬盘、没有光驱或刻录机、没有其他硬盘且无须改建 GPT 分区表的情况下，在普通电脑上快速便捷地安装 Mac OS X Snow Leopard 的方法及其注意要点。 全过程简述 对硬盘进行分区； 下载光盘镜像，保存为磁盘镜像； 将该磁盘镜像还原到分区中，并覆盖需破解的文件； 安装硬盘引导； 从硬盘启动安装程序，一步一步安装； 善后收尾工作。 事前要准备的工具 　　本文所提及的工具软件，均可在文章结尾处找到下载链接。解压缩密码均为：www.ychong.com HFS Explorer （需要先安装 Java 虚拟机，地址：http://www.java.com/） MacDrive Leopard 硬盘安装助手 BootThink 第一步：分区 　　笔者采用的策略是在几个逻辑分区的中间劈开约 30G 的可用空间，建立一个 23G、一个 7G 的 FAT32 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-thumb.png" alt="Mac OS X Snow Leopard on Regular PC screenshot" class="thumbnail" />　　自 2009 年 8 月份苹果发布 Mac OS X Snow Leopard 操作系统以来，其对各类 PC 的兼容性的大大提升广受好评。同时也有许多苹果机的用户，因为不习惯苹果系统的使用风格等其它原因，在苹果电脑上安装 Windows XP 等 x86 操作系统，并且都有苹果官方提供便捷的途径。而果饭们却到现在也没有等到官方允许普通电脑安装 Mac 操作系统的途径公布。</p>
<p>　　在此，本文将详细介绍如何在没有U盘或移动硬盘、没有光驱或刻录机、没有其他硬盘且无须改建 GPT 分区表的情况下，在普通电脑上快速便捷地安装 Mac OS X Snow Leopard 的方法及其注意要点。</p>
<p><span id="more-119"></span></p>
<h3>全过程简述</h3>
<ol>
<li><strong>对硬盘进行分区；</strong></li>
<li><strong>下载光盘镜像，保存为磁盘镜像；</strong></li>
<li><strong>将该磁盘镜像还原到分区中，并覆盖需破解的文件；</strong></li>
<li><strong>安装硬盘引导；</strong></li>
<li><strong>从硬盘启动安装程序，一步一步安装；</strong></li>
<li><strong>善后收尾工作。</strong></li>
</ol>
<h3>事前要准备的工具</h3>
<p>　　本文所提及的工具软件，均可在文章结尾处找到下载链接。解压缩密码均为：www.ychong.com</p>
<ul>
<li><strong>HFS Explorer</strong> （需要先安装 Java 虚拟机，地址：<a href="http://www.java.com/" target="_blank" rel="nofollow">http://www.java.com/</a>）</li>
<li><strong>MacDrive</strong></li>
<li><strong>Leopard 硬盘安装助手</strong></li>
<li><strong>BootThink</strong></li>
</ul>
<h3>第一步：分区</h3>
<p>　　笔者采用的策略是在几个逻辑分区的中间劈开约 30G 的可用空间，建立一个 23G、一个 7G 的 FAT32 格式的分区。其中 7G 的分区用来放系统安装文件。（如图）</p>
<p><img src="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-01.png" alt="在普通电脑上安装 Mac OS X Snow Leopard （苹果雪豹）" /></p>
<h3>第二步：下载镜像并生成磁盘镜像</h3>
<p>　　从网上下载最新版雪豹安装光盘镜像 snowleopard_10a432_userdvd.dmg，使用 HFS Explorer 软件打开此光盘镜像，选择“Tools”→“Create disk image&#8230;”，另存为磁盘镜像。（如图）</p>
<p><img src="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-02.png" alt="在普通电脑上安装 Mac OS X Snow Leopard （苹果雪豹）" /></p>
<h3>第三步：写入系统安装文件并破解</h3>
<p>　　打开 Leopard 硬盘安装助手，“镜像文件”选择刚刚生成的磁盘镜像（非下载来的光盘镜像），“目标分区”选择第一步中我们分好的 7G 的分区，取消勾选下面三个选项，并点击旁边的“开始!”按钮开始还原该镜像的内容到指定分区中。（如图）</p>
<blockquote><ol>
<li>选择的镜像必须是重新生成的硬盘/磁盘镜像，而不是下载来的光盘镜像，虽然扩展名都是 dmg。</li>
<li>目标分区必须是 FAT32 文件系统，且为空。如果经格式化后仍然提示分区非空，尝试关闭多余的后台软件。</li>
</ol>
</blockquote>
<p><img src="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-03.png" alt="在普通电脑上安装 Mac OS X Snow Leopard （苹果雪豹）" /></p>
<p>　　安装 MacDrive（可能需要重启），完成后即可直接在 Windows 中浏览 Mac 分区的文件并进行操作。（如图）</p>
<p><img src="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-04.png" alt="在普通电脑上安装 Mac OS X Snow Leopard （苹果雪豹）" /></p>
<p>　　找到 7G 安装分区，将用于使 Leopard 支持 MBR 分区表的破解文件 OSInstall 覆盖入 /System/Library/PrivateFrameworks/Install.framework/Frameworks/OSInstall.framework/Version/A/ 文件夹中，OSInstall.mpkg 文件覆盖入 /System/Installation/Packages/ 文件夹中。</p>
<blockquote><p>硬盘的分区表格式，要么是 MBR（Windows、Linux 系统默认支持的），要么是 GPT（Mac 系统默认支持，但 Windows 不支持），所以要在安装之前对 Mac 进行分区表格式破解支持。</p></blockquote>
<h3>第四步：安装硬盘引导</h3>
<p>　　运行 BootThink 安装程序，经过全自动命令行安装后结束。</p>
<blockquote><p>重启之前打开 C:\Darwin\System\LibrarySL\Extensions，我们要在此加入其它 kext，以兼容更多硬件。</p>
<ol>
<li>fakesmc.kext —— 模拟苹果电脑上的 SMC 部件，必不可少；</li>
<li>NullCPUPowerManagement.kext —— 禁用电源管理功能；</li>
<li>OpenHaltRestart.kext —— 解决关机或重启后无法断电的问题；</li>
<li>VoodooPS2Controller.kext 和 AppleACPIPS2Nub.kext —— 提供传统 PS/2 鼠标或键盘以及笔记本触摸板支持（如果 Voodoo 不工作，可用 ApplePS2Contriller.kext 代替）。</li>
</ol>
</blockquote>
<h3>第五步：启动安装</h3>
<p>　　重启电脑，在 Windows 启动项选择中，选择 BootThink 一栏。</p>
<p>　　通过方向键移至那个 7G 的分区“Mac OS X Install DVD”，此时如果您的电脑是 32 位的话，按 F8 键，输入 <code>-x32</code> 并回车开启安装程序，而 64 位电脑则忽略此操作。（如图）</p>
<p><img src="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-05.png" alt="在普通电脑上安装 Mac OS X Snow Leopard （苹果雪豹）" /></p>
<p><img src="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-06.png" alt="在普通电脑上安装 Mac OS X Snow Leopard （苹果雪豹）" /></p>
<p>　　进入安装器后，选择菜单栏的“实用工具”→“磁盘工具”。（如图）</p>
<p><img src="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-07.png" alt="在普通电脑上安装 Mac OS X Snow Leopard （苹果雪豹）" /></p>
<p>　　在弹出的窗口中左侧选择需要安装 Mac 系统的主分区，右侧顶部选择“抹掉”，并在“格式”一栏选择“Mac OS 扩展（日志式）”，单击“抹掉”并确认。（如图）</p>
<blockquote><p>此处“抹掉”即为格式化，意义在于将 Mac 系统分区格式化成 HFS+ 文件系统。</p></blockquote>
<p><img src="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-08.png" alt="在普通电脑上安装 Mac OS X Snow Leopard （苹果雪豹）" /></p>
<p>　　选择刚刚“抹掉”的 Mac 系统主分区。（如图）</p>
<p><img src="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-09.png" alt="在普通电脑上安装 Mac OS X Snow Leopard （苹果雪豹）" /></p>
<p>　　安装完成后，安装器计时 30 秒后重启，进入系统仍然选择 BootThink → Mac 系统分区。初次进入系统需要设置些帐户、Apple ID 等。完成后即可进入系统。</p>
<h3>第六步：善后收尾</h3>
<p>　　通过雪豹系统的分区功能，将 7G 分区格式化并与雪豹系统分区合并。</p>
<p>　　通过 OSX86 Tools 重新调整开机启动项，也可免去 BootThink 引导方式，并可避免每次都要输入类似于 <code>-x32</code> 等参数来引导 Mac 系统。</p>
<p>　　然后是驱动程序问题。大多数机器在进入 Mac 系统后没有声音，分辨率不能调整，etc，有的甚至连网络都没有。此时我们需要上网查找更多的 kext 来兼容这些硬件。</p>
<h3>附：所用工具软件</h3>
<p>　　以下压缩包的解压缩密码均为：www.ychong.com</p>
<p>　　BootThink 引导扩展部分（KEXT）：</p>
<ul>
<li><a href="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-attach/NullCPUPowerManagement.kext.zip" target="_blank">NullCPUPowerManagement.kext</a></li>
<li><a href="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-attach/OpenHaltRestart.kext.zip" target="_blank">OpenHaltRestart.kext</a></li>
<li><a href="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-attach/VoodooPS2Controller.kext.zip" target="_blank">VoodooPS2Controller.kext</a></li>
<li><a href="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-attach/AppleACPIPS2Nub.kext.zip" target="_blank">AppleACPIPS2Nub.kext</a></li>
<li><a href="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-attach/LegacyAtheros.kext.zip" target="_blank">LegacyAtheros.kext</a></li>
</ul>
<p>　　软件和工具部分：</p>
<ul>
<li><a href="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-attach/OSInstall.zip" target="_blank">OSInstall</a></li>
<li><a href="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-attach/OSInstall.mpkg.zip" target="_blank">OSInstall.mpkg</a></li>
<li><a href="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-attach/hfsexplorer-0_21-bin.zip" target="_blank">HFS Explorer v0.21</a></li>
<li><a href="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-attach/macdrive_8.0.7.38_en_setup.zip" target="_blank">MacDrive v8.0.7.38 (en-US)</a></li>
<li><a href="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-attach/Leopard%20HD%20Install%20Helper%20v0.3.zip" target="_blank">Leopard HD Install Helper v0.3</a></li>
<li><a href="http://www.ychong.com/wp-content/uploads/2011/06/20110622-mac-pc-attach/BootThink%202.3.18_Win.zip" target="_blank">BootThink v2.3.18</a></li>
</ul>
<p>　　（注：本文部分内容引用自：<a href="http://www.xmsofter.com/forum.php?mod=viewthread&#038;tid=24" target="_blank" rel="nofollow">http://www.xmsofter.com/forum.php?mod=viewthread&amp;tid=24</a>）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ychong.com/mac-os-x-snow-leopard-on-regular-pc/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

