解决4u模版在wordpress3不能显示最近评论的问题

本站WordPress版本是3.0.3,模版目前用的一个比较老的主题4U,主要比较喜欢这个黑绿的配色。

但是用了几天下来发现recent comments一直无法显示记录,研究了主题包下面的recent_comment.php发现里面就简单地一句函数调用。google了一下函数名u_get_recent_comments,找到了这篇文章,指出了是recent comments这个页面调用的函数u_get_recent_comments里面定义的两个全局变量$tableposts和$tablecomments在新版的WordPress里面不支持了,所以查不出东西来,只要在funtions.php里面将这个函数略作修改,直接把表名赋予这两个变量即可。

function u_get_recent_comments($no_comments = 5, $before = ‘<li>’, $after = ‘</li>’, $show_pass_post = false) {

global $wpdb;
$tableposts = ‘wp_posts’;
$tablecomments = ‘wp_comments’;

$request = “SELECT ID, comment_ID, comment_content, comment_author FROM $tableposts, $tablecomments WHERE $tableposts.ID=$tablecomments.comment_post_ID AND (post_status = ‘publish’ OR post_status = ‘static’)”;

但是在根据这篇文章解决上述问题的过程中遇到了两个意料外的问题,所以特地补充说明一下。

1、需要修改的functions.php在哪的问题。因为这个文件一想就知道有两个,一个是本模版自带的,在wordpress/wp-content/themes/4u-hemingway20070126/这个路径下的,另一个是全局的,应该改哪个呢?原文没有说明,我在把两个文件都打开之后发现u_get_recent_comments这个函数是在模版下面自带的functions.php里面的,所以应该改这个,也就是在wordpress后台界面可以直接编辑到的那个。

2、这个坑就大了,原文上面那段函数里面所有的单引号都用得不对!用的不是英文半角单引号 ‘ ‘ 而是中文半角的 ‘ ’ 这样的一对,不仔细看完全看不出来,一开始直接把原文里的那段复制过去,保存,直接瘫站,访问网站提示有语法错误,杯具!wordpress后台都无法继续访问了,保存就报错。只好进到空间的后台重新上传了一份主题包里面的原版functions.php,用手工方式修改,成功。后来仔细比对才发现了那个单引号的大“坑”。。。

这两个问题搞定之后,整个问题就解决了,现在也可以看到最新评论了。

────

写完发布一看晕了,我原来那段函数里都已经改成英文半角的单引号了,怎么发出来又变成跟原作者一样的了?继续google。。。
终于在这里找到了解释,原来是wordpress发布的时候自作主张替换了的,即使原文里面是对的,发出来也不对了。。。所以从网页上复制类似的代码要小心了。。。

Comments

2 responses to “解决4u模版在wordpress3不能显示最近评论的问题”

  1. Cherami Avatar

    老兄,看了你的个人简介,我们还真是太像了,你的个人简介中的70%的内容和我一样啊

    1. steedguo Avatar
      steedguo

      呵呵,有缘人啊~

Leave a Reply to steedguo Cancel reply

Your email address will not be published. Required fields are marked *