解决WordPress 2.0的comments始终为0的问题
升级到WordPress2.0后,只有少数插件遇到了问题,都与Permalinks有关。不过,最近发现,SK2也有些问题,留言数目总是0,今晚有时间Debug了一下,发现WordPress2.0中”wp-posts”表里面新增了一个”comment-count”字段,这其实是”wp-comments”中取出的这个Post所有留言之和。之所以做这样违反范式的冗余设计,应该是效率上的考虑。这就带来了更新上的问题。SK2做的时候当然不会知道这个,所以就带来了问题。
发现了一个SK2的插件,用于解决这个问题 – SK2-WP2Compatibility (注意,这是SK2的插件,而不是WordPress的插件,有时间我要研究一下SK2的插件机制)。这个插件很简单,看看代码就知道了。
- $c = $wpdb->get_row( "SELECT count(*) as c FROM {$wpdb->comments} WHERE comment_post_ID = '$cmt_object->post_ID' AND comment_approved = '1'" );
- if( is_object( $c ) ) {
- $this->log_msg(__(" Wordpress 2.0 detected - going to update comment counts" ), 4);
- $wpdb->query( "UPDATE $wpdb->posts SET comment_count = '$c->c' WHERE ID = '$cmt_object->post_ID'" );
- }
不过,SK最新的2.1版本中已经解决了这个问题,所以,只需要升级到SK2.1就可以了。
Popularity: 25% [?]
Related entries: