<?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>浩行天下 ghSky-&#62;Blog &#187; Plugin</title>
	<atom:link href="http://ghsky.com/tag/plugin/feed" rel="self" type="application/rss+xml" />
	<link>http://ghsky.com</link>
	<description>热衷于前端技术 (X)HTML, CSS, JavaScript</description>
	<lastBuildDate>Sat, 24 Jul 2010 09:30:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<atom:link rel='hub' href='http://ghsky.com/?pushpress=hub'/>
		<item>
		<title>最新文章函数不显示指定分类</title>
		<link>http://ghsky.com/2008/07/function-of-recent-posts-none-display-some-categories.html</link>
		<comments>http://ghsky.com/2008/07/function-of-recent-posts-none-display-some-categories.html#comments</comments>
		<pubDate>Fri, 18 Jul 2008 15:35:03 +0000</pubDate>
		<dc:creator>ghSky</dc:creator>
				<category><![CDATA[Site]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://ghsky.com/?p=199</guid>
		<description><![CDATA[启用了Video分类，但是不希望这个分类的文章在“最新文章”中显示，怎么办呢？只能过滤分类了。可是现在的WordPress数据库比较奇特，在文章的wp_posts属性里面category已经被全部指定为0 （汗一个，那文章分类在哪里呢？）原来在现在的WordPress中引用了term_taxonomy(下简称tt)、term_relationships(下简称tr)来确定分类关系~~自己还是不大明白为啥要用那么复杂的办法捏 怎么排除这个分类的文章呢？参考了“相关日志”这个插件的一些代码，不过作者的思路比较高深，我这种随便玩玩php的人自然很难看懂，所以就用了一些比较笨的办法来实现相关的排除分类。这里就摘取了相关的一段代码：p.s.排除的分类ID修改变量$ex_id即可 //Recent Posts function get_recent_posts($no_posts = 10, $before = ' ', $after = ' ', $show_pass_post = false, $skip_posts = 0, $ex_id = '47') { global $wpdb, $post, $table_prefix; $exclude = explode(",",$ex_id); $q = "SELECT tt.term_id, tr.object_id FROM ". $table_prefix ."term_taxonomy tt, " . $table_prefix . "term_relationships tr WHERE tt.taxonomy = 'category' AND [...]]]></description>
			<content:encoded><![CDATA[<p>启用了Video分类，但是不希望这个分类的文章在“最新文章”中显示，怎么办呢？只能过滤分类了。可是现在的WordPress数据库比较奇特，在文章的wp_posts属性里面category已经被全部指定为0 <img src='http://ghsky.com/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' /> （汗一个，那文章分类在哪里呢？）原来在现在的WordPress中引用了term_taxonomy(下简称tt)、term_relationships(下简称tr)来确定分类关系~~自己还是不大明白为啥要用那么复杂的办法捏 <img src='http://ghsky.com/wp-includes/images/smilies/icon_question.gif' alt=':question:' class='wp-smiley' /> </p>
<p>怎么排除这个分类的文章呢？参考了“相关日志”这个插件的一些代码，不过作者的思路比较高深，我这种随便玩玩php的人自然很难看懂，所以就用了一些比较笨的办法来实现相关的排除分类。这里就摘取了相关的一段代码：p.s.排除的分类ID修改变量$ex_id即可</p>
<pre class="brush:php">
//Recent Posts
function get_recent_posts($no_posts = 10, $before = '
<li>', $after = '</li>

', $show_pass_post = false, $skip_posts = 0, $ex_id = '47') {
    global $wpdb, $post, $table_prefix;
	$exclude = explode(",",$ex_id);
	$q = "SELECT tt.term_id, tr.object_id FROM ". $table_prefix ."term_taxonomy tt, " . $table_prefix . "term_relationships tr WHERE tt.taxonomy = 'category' AND tt.term_taxonomy_id = tr.term_taxonomy_id";
	$cats = $wpdb->get_results($q);
	$cnt = 0;
	foreach($cats as $cat) {
		if (in_array($cat->term_id, $exclude) == true){
			$ex_post_id[$cnt] = $cat->object_id;
			$cnt++;
		}
	}
	$ex_post_out = 'p.ID !=';
	for ($i = 0; $i <= $cnt-2; $i++) {
		$ex_post_out = $ex_post_out . $ex_post_id[$i] . ' AND p.ID !=';
	}
	$ex_post_out .= $ex_post_id[$cnt-1];
    $request = "SELECT p.ID, p.post_title, p.post_date, p.post_content FROM $wpdb->posts p WHERE $ex_post_out AND p.post_status = 'publish' AND p.post_type = 'post'";
        if(!$show_pass_post) { $request .= "AND post_password ='' "; }
    $request .= "ORDER BY post_date DESC LIMIT $skip_posts, $no_posts";
    $posts = $wpdb->get_results($request);
    $output = '';
...
</pre>
<p>大概原来就是先从表中确定是category的项目，然后再对照tt.term_taxonomy_id = tr.term_taxonomy_id的项目，即把分类和文章ID挂上勾，然后再查找所要排除的分类的ID，再从中筛选出来该分类（或几个分类）的文章ID生成数组ex_post_id，再用一点儿字符串链接的方法结合成字符串p.ID != xxx以便在查询最新文章的时候排除这个几个ID，然后就大功告成了~~~研究这个真的花了不少时间，首先mysql的查询就比较头大，然后php数组问题也卡了一下（原来数组赋值和pascal一样，只不过不用事先声明数组），基本就这样咯~~</p>
]]></content:encoded>
			<wfw:commentRss>http://ghsky.com/2008/07/function-of-recent-posts-none-display-some-categories.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最近对WP的一些动作</title>
		<link>http://ghsky.com/2008/06/some-actions-to-my-wordpress.html</link>
		<comments>http://ghsky.com/2008/06/some-actions-to-my-wordpress.html#comments</comments>
		<pubDate>Thu, 12 Jun 2008 04:22:22 +0000</pubDate>
		<dc:creator>ghSky</dc:creator>
				<category><![CDATA[Site]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://ghsky.com/?p=145</guid>
		<description><![CDATA[最近，在小影唆使下，更新了原来的破主题，其实自己高考前就想高考完了换主题。他小子给我看了个不错的主题Fresh News，看似很不错，不过是收费的，而且费用高达99.95美刀（额滴神啊~~~），快有一个Windows Vista Released贵了……不过那小子不知从哪里居然搞到了主题文件，汗，佩服他一下……但是用上后，发现这个主题那是相当复杂，复杂，……，复杂！个人使用不了那么多功能，所以我就想正好练练PHP CSS吧，就开始了精简工作，和那小子一起搞。经过4天的努力，基本搞定了，就是现在这个应用的样子。在这期间我算是认识到了JS的威力，可怕啊，还要再次多谢刺猬哥哥的帮忙哦，哇哈哈，又是他帮忙加了一些不错功能（主要是comments.php里面）！主题兼容性没有自己验证，让小影验证了下，应该基本没问题！哇哈哈，终于搞定了！不过这个主题像这样改了也许会有侵权的嫌疑，所以当然不能把这个主题发布咯，希望原主题的作者表来找我俩的麻烦（其实罪魁祸首是那个提供下载的人）…… 昨天随便逛的时候，发现了个相当不错的主题，可惜晚发现了，不然现在可能我就用上那个主题了，大家没事可以去看看，居然那作者还是第一次发主题，就这么精美，Orz 主题：INSay 今天随便转了转了，又发现我爱水煮鱼上面的一篇不错的文章，转过来收藏+共享！ Popularity Contest 转换到 PostViews 前面在通过优化插件来提高 WordPress 运行效率中谈到：我一直使用的 Popularity Contest 这个插件，这个是非常好的插件，但是它一个很大的问题是对数据库操作实在太多了，因为要统计一篇日志在 single category archive home feed 等下的被阅读的次数，其实个人觉得只有在 single 下阅读次数是最重要的，如果要求提供 WordPress 运行效率的情况下，最好转换到 PostViews 这个插件。今天就把转换函数贴出来，本来想用 SQL 转换的，后来发现一个循环更容易解决问题，代码如下：]]></description>
			<content:encoded><![CDATA[<p>最近，在<a href="http://cople.cn/" target="_blank">小影</a>唆使下，更新了原来的破主题，其实自己高考前就想高考完了换主题。他小子给我看了个不错的主题<a href="http://freshnews.premiumnewstheme.com/">Fresh News</a>，看似很不错，不过是收费的，而且费用高达99.95美刀（额滴神啊~~~），快有一个Windows Vista Released贵了……不过那小子不知从哪里居然搞到了主题文件，汗，佩服他一下……但是用上后，发现这个主题那是相当复杂，复杂，……，复杂！个人使用不了那么多功能，所以我就想正好练练PHP CSS吧，就开始了精简工作，和那小子一起搞。经过4天的努力，基本搞定了，就是现在这个应用的样子。在这期间我算是认识到了JS的威力，可怕啊，还要再次多谢<a href="http://soniccube.net">刺猬哥哥</a>的帮忙哦，哇哈哈，又是他帮忙加了一些不错功能（主要是comments.php里面）！主题兼容性没有自己验证，让小影验证了下，应该基本没问题！哇哈哈，终于搞定了！不过这个主题像这样改了也许会有侵权的嫌疑，所以当然不能把这个主题发布咯，希望原主题的作者表来找我俩的麻烦（其实罪魁祸首是那个提供下载的人）……</p>
<p>昨天随便逛的时候，发现了个相当不错的主题，可惜晚发现了，不然现在可能我就用上那个主题了，大家没事可以去看看，居然那作者还是第一次发主题，就这么精美，Orz 主题：<a href="http://www.ineversay.com/wordpress/insay.html">INSay</a><br />
<span id="more-145"></span><br />
今天随便转了转了，又发现<a href="http://fairyfish.net/">我爱水煮鱼</a>上面的一篇不错的文章，转过来收藏+共享！</p>
<p><a href="http://fairyfish.net/2008/01/02/popularity-contest-to-postviews/">Popularity Contest 转换到 PostViews</a><br />
前面在通过优化插件来提高 WordPress 运行效率中谈到：我一直使用的 Popularity Contest 这个插件，这个是非常好的插件，但是它一个很大的问题是对数据库操作实在太多了，因为要统计一篇日志在 single category archive home feed 等下的被阅读的次数，其实个人觉得只有在 single 下阅读次数是最重要的，如果要求提供 WordPress 运行效率的情况下，最好转换到 PostViews 这个插件。今天就把转换函数贴出来，本来想用 SQL 转换的，后来发现一个循环更容易解决问题，代码如下：</p>
<pre class="brush:php">
<?php
function Popularity_Contest_to_PostViews() {
	global $wpdb;
	$q = "select id from wp_posts where post_type='post' or post_type='page'";
	$post_ids = $wpdb->get_results($q);
	foreach ($post_ids as $post_id ){
		$id = $post_id -> id;
		$sql = "SELECT single_views FROM wp_ak_popularity WHERE post_id = $id";
		$views = $wpdb->get_results($sql);
		if ($views) {
			$view = $views[0]->single_views;
			if($view){
				if(!update_post_meta($id, 'views', $view)) {
					add_post_meta($id, 'views', $view, true);
				}
			}
		}
	}
}?>
<?php Popularity_Contest_to_PostViews(); ?>
</pre>
<p>在激活 PostViews 插件之前，你把以上代码复制到你的模板的 footer.php 中，让其运行一次，删除以上代码，然后安装 PostViews 插件。</p>
<p>该函数在本站测试成功，但是为了保证你的数据的安全，请在使用之前，最好备份好数据库，以免出错，由此出现错误，本站概不负责。挖哈哈！</p>
<p>所以也把自己的POP插件卸载了，换上了PostViews，使用中，体会以后慢慢说，不过看首页的数据库查询量是下来了，从3X到了2X！</p>
]]></content:encoded>
			<wfw:commentRss>http://ghsky.com/2008/06/some-actions-to-my-wordpress.html/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>
