好久没有更新wordpress版本,今天更新了以后发现主题的读者墙不显示了,无奈好久没有折腾查看了好多资料都不知道怎么回事,代码看起来没有任何问题可是就是不显示任何数据。
原有代码如下:
comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->posts.ID=$wpdb->comments.comment_post_ID) WHERE comment_date > date_sub( NOW(), INTERVAL 24 MONTH ) AND user_id='0' AND comment_author_email != '1220406782qq.com' AND post_password='' AND comment_approved='1' AND comment_type='') AS tempcmt GROUP BY comment_author_email ORDER BY cnt DESC LIMIT 39";//大家把管理员的邮箱改成你的,目的是从读者墙里面排除博客作者,最后的数字39是读者的个数,可以按照自己的情况修改! $wall = $wpdb->get_results($query); $maxNum = $wall[0]->cnt; foreach ($wall as $comment){ $width = round(40 / ($maxNum / $comment->cnt),2);//此处是对应的血条的宽度 if( $comment->comment_author_url ) $url = $comment->comment_author_url; else $url="#"; $avatar = get_avatar( $comment->comment_author_email,30); $tmp ="
- ".$output."
在经过仔细排查后发现WordPress之前评论表的 comment_type 字段的默认值一直是空字符,为了更加的语义化,从 5.5 版本开始,WordPress 已经将强制设置为 "comment",这项改动是为了以后更加的方便实现自定义 comment_type 注册。发现问题所在了原代码conmment_type参数导致。
修改代码如下:
comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->posts.ID=$wpdb->comments.comment_post_ID) WHERE comment_date > date_sub( NOW(), INTERVAL 24 MONTH ) AND user_id='0' AND comment_author_email != '1220406782qq.com' AND post_password='' AND comment_approved='1' AND comment_type='comment') AS tempcmt GROUP BY comment_author_email ORDER BY cnt DESC LIMIT 39";//大家把管理员的邮箱改成你的,目的是从读者墙里面排除博客作者,最后的数字39是读者的个数,可以按照自己的情况修改! $wall = $wpdb->get_results($query); $maxNum = $wall[0]->cnt; foreach ($wall as $comment){ $width = round(40 / ($maxNum / $comment->cnt),2);//此处是对应的血条的宽度 if( $comment->comment_author_url ) $url = $comment->comment_author_url; else $url="#"; $avatar = get_avatar( $comment->comment_author_email,30); $tmp ="
- ".$output."
正文到此结束
版权声明:本文中使用的部分内容来自于网络,如有侵权,请联系《博主》进行删除
LEAVE A REPLY