wordpress开启cache后的一些问题

继上篇如何使wordpress 2.6.X启用缓存加速开启word2.6.3的cache后,速度感觉有所提高。但是出现了一些问题。
一个是如果关闭cache,则会出现了

WordPress database error: [Table 'wp.wp_categories' doesn't exist]
SELECT * FROM wp_categories

的报错信息。查了一下,是因为版本不兼容的问题,用的是老版的cache.php,里面有一个取分类的功能。原来有XXcategories这个表的。没办法
找到

if ($dogs = $wpdb->get_results("SELECT * FROM $wpdb->categories"))

替换成

if (1<0 && $dogs = $wpdb->get_results("SELECT * FROM $wpdb->categories"))

让这一句不执行就没错误,也可以正常显示了。
最好的办法应该是找到其他的版本,或者修正这句话。。。等空下来再说。//TODO

另外一个问题是开了cache后,评轮的次数也会缓存,就是后台你审核或者删除评论,次数不变。要等缓存清除后才能正确显示,偶的解决方法比较野蛮:
找到

wp_update_comment_count($comment->comment_post_ID);

大概是在787 行,在return前增加一句wp_cache_flush();即可。
应该也有更优雅的方法,比如搞个插件啥的。。可是偶现在不会。。

铁齿铜牙

这个小家伙的嘴巴功夫越来越厉害,才2岁1个月的小人,有时候会让我觉得很无奈,一点办法也没有。一方面是我这个妈妈能力有限,另一方面也是这个小妞太强了点。
周末在家附近的一个小礼品店,里面有些便宜的小玩具。贝进去后眼睛就不够用了,这个摸摸那个瞧瞧,后来跑过来找我,说“妈妈来,我要这个”,便使劲拉着我到了一个天线宝宝的玩具前面,我一看,做工很差,宝宝们的脸部也极其难看,便脱口而出:“这个天线宝宝丑死了”,话音未落,贝就跟着说:“妈妈,我就要丑死的天线宝宝阿!”, 几个售货的小姑娘听着哈哈大笑起来。

现在还学会了说:我肯定要动妈妈东西,我就要现在吃巧克力等句型,并且使用的频率越来越频繁,越来越熟练。。。

python的settimeout

有时候写python关于网络的程序。比如用urllib2等module发http请求的时候,发现有时候会有死掉的情况,就是程序没任何反应,也不是cpu,内存没资源的问题。具体情况还没搞明白那里出的问题,但是找到一个解决办法。就是设置socket time out,即:如果一个请求超过一定的时间没有完成,就终止,再次发起请求。
这个是从2.3有的功能用法如下:
settimeout( value)
Set a timeout on blocking socket operations. The value argument can be a nonnegative float expressing seconds, or None. If a float is given, subsequent socket operations will raise an timeout exception if the timeout period value has elapsed before the operation has completed. Setting a timeout of None disables timeouts on socket operations. s.settimeout(0.0) is equivalent to s.setblocking(0); s.settimeout(None) is equivalent to s.setblocking(1). New in version 2.3.

就是settimeout()里面填一个数值。小心别太小,别正常的请求也不能完成。

如何使wordpress 2.6.X启用缓存加速

一直觉得wordpress的性能不好。打开它自己的查询次数和花费时间统计,一个首页有44的查询,一个单文章页面有52次查询。上边这些数字可能跟我装的一些插件或者增加的功能有关。网上说可以开启自带的cache缓存功能。
define(‘ENABLE_CACHE’, TRUE);
在2.6.3版本却不行,google了半天的,检查了半天的文件夹属性,还是不行。于是换了一个用老wordpress的网站,用的是2.1.3,打开后却马上可以了。百思不得其解。又是检查了半天。直到最后要放弃了,把2个wp-include/cache.php文件都拿下来做对比,发现区别很大。把老的cache.php替换到2.6.3上,马上就可以了。原来
wp 2.6.3的cache.php 和 2.1.3不一样,启用后,效果还可以。首页的查询从44次数降到了11,单个文章页面,从52减少到了15次。总体花费的时间变化倒不是很大。但是心理感觉还是不错的。

开启后有2个问题,一个是未审核留言的数字,被缓存了。还有一个是换了cache.php文件后,如果关闭缓存,会在头部有一个抱错信息。说是SELECT * FROM wp_categories 。这个表不存在。

下篇再说怎么解决。

不让Most Commented显示页面的评论

wordpress的Most Commented插件不错,可以显示现在评论最多的文章和页面。
但是有个问题,有些网站的留言本和某些页面也是可以留言的,那么留言最多的就肯定是这些个页面了。于是想去掉页面(page)的评论,只要文章的。
修改很简单找到

if (!$show_pass_post) $request .= " AND post_password =''";

在后边,添加

$request .= " AND post_type  !='page' ";

即可。
测试成功。

贝事2则

像卖馍的一样

贝贝洗澡,把肥皂泡在澡盆里。一盆水都变白色了。贝妈说:贝贝,你看,水都变白了,像牛奶一样。贝说:恩,还像卖馍的一样。
贝贝爷爷经常带贝贝去一家卖馒头的店买馒头。那里的人都穿白色衣服。

不让上厕所

贝贝粘贝妈,晚上贝妈下班回去就不让妈妈离开。上个厕所的时间都不让,刚离开就哭,叫。
贝爸问:你喜欢妈妈么?
贝贝说:喜欢。
贝爸问:妈妈喜欢么你?
贝贝说:喜欢。
贝爸问:你上厕所妈妈让你去么?
贝贝说:让去。
贝爸问:那妈妈上厕所你让去么?
贝贝说:不让。
上面对话速度很快。费了半天劲,还是没把她绕晕。

如何显示wordpress当前分类的文章列表?

wordpress单个文章页面的侧边栏如果还是显示和首页,分类页面一样的文章就没什么意思了。下面的代码是显示文章所属分类的文章列表,这样可以让访问者可以方便查看相关文章。回头再改改,看看能不能在分类页面上显示最受欢迎的文章。
添加下列代码在合时的位置即可

<?php
/*
single page?show current category articles
*/
?>
<?php
if ( is_single() ) :
global $post;
$categories = get_the_category();
foreach ($categories as $category) :
	?>
	<li class="widget widget_recent_entries" id="<?php $category->term_id;?>-posts">
		<h2 class="widgettitle"><?php echo $category->name; ?></h2>
		<ul>
		<?php
		$posts = get_posts('numberposts=5&category='. $category->term_id);
		foreach($posts as $post) :
		?>
			<li>
			<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
			</li>
		<?php endforeach; ?>
		</ul>
	</li>
<?php
endforeach; endif ; ?>
<?php
/*
end show current category articles
*/
?>

又丢了一部车

永久的,买了没多久,300多¥,上次是今年下雪的时候丢的。天天放地铁站,有时候独自过夜都没问题。结果放到小区另外一个楼道里就丢了。去找小区门卫,被人鄙视了,意思是丢个车还好意说,人家电动车都怎么怎么了。
别人说也就说了,你是门卫负责这个事儿的,你也能这么说?虽然找你的时候没指望能找回来。咳。让我怎么不问候Y的XX?

这次买了车子,钢印都没砸,知道没用,每次用后都搬到2,3楼楼梯的拐角处,除了小区楼洞粉刷掉上了点白色涂料外,还是很新的。结果那天早上起来下楼没看到,以为老爸骑去了,或者车棚找得到位置了。结果我回来的时候老爸问我是不是骑走了。偶心中唯一的一点侥幸也破灭了。

丢了,真的丢了,又一次。离过年还远啊。