好久没有更新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 ="
  • comment_author_url."\">".$avatar."".$comment->cnt."".$comment->comment_author."
  • "; $output .= $tmp; } $output = "
      ".$output."
    "; echo $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 ="
  • comment_author_url."\">".$avatar."".$comment->cnt."".$comment->comment_author."
  • "; $output .= $tmp; } $output = "
      ".$output."
    "; echo $output ; ?>
    正文到此结束

    留言

    0条评论

    LEAVE A REPLY

    • face face face face face face face face face face face face face face face face face face face face face face face face face