唯品秀前端博客
当前位置: 网站模板 > 【已解决】WordPress升级后5.5.1后无法调用最新评论

最新把网站所有应用版本都升级了,包括WordPress、php、nginx等,一顿的折腾踩了点坑,再次记录遇到的两个问题,其中包括数据库导入报错,以及部分用户升级后使用的主题最新评论模块调用不出来数据。

导入数据库报错

首先说说,其实我自己网站升级后评论模块并没有问题,可能人品爆发吧,但个别用户会出现此问题,对比了下配置方便,应该问题不大,然后考虑是数据库问题,因为wordpress升级到连同数据库方便也做了调整,所以让别人把自己数据库导出一份给我到本地调试,于是在导入过程中出现了报错:WordPress导入数据库报错 Unknown collation: utf8mb4_unicode_520_ci

该报错原因是数据库版本差异,导致wordpress数据库的编码整理方式不一样。MySQL 5.6 以及以上版本下,安装 WordPress 4.6 及以上版本的时候,默认的编码整理方式为 utf8mb4_unicode_520_ci,但是 MySQL 5.5 及以下版本的数据库,不支持 utf8mb4_unicode_520_ci,所以无法导入。

处理的办法:就是使用Visual Studio Code、Sublime Text等代码编辑器,打开 .sql 数据库,然后批量查找替换所有的 utf8mb4_unicode_520_ci 为 utf8mb4_unicode_ci ,保存后上传即可。

最新评论无法调用

原本代码

1
2
3
4
5
6
7
8
9
10
11
12
13
global $wpdb;  
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,25) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10";  
$comments = $wpdb->get_results($sql);  
$output = $pre_HTML;  
foreach ($comments as $comment) {  
$output .= "\n
"

 . $comment->comment_author . " 评论:
  . get_permalink($comment->ID) . "
#comment-" . $comment->comment_ID . "" title="". $comment->comment_author. ":" . $comment->post_title . "">" . strip_tags($comment->com_excerpt) ."";  
}  
$output .= $post_HTML;  
echo $output;  
?>

修改后代码

1
2
3
4
5
6
7
8
9
10
11
12
<?php
    $comments = get_comments('status=approve&number=6&order=modified');
    $output = $pre_HTML;
    foreach ($comments as $comment) {
        $com_excerpt = $comment->comment_content;
        $excerpt_len = mb_strlen($comment->comment_content, 'utf-8');
        if ($excerpt_len > 46) $com_excerpt = mb_substr($com_excerpt, 0, 46, 'utf-8').'...';
        $output .= "\n<li>". '<img src="https://q.qlogo.cn/headimg_dl?bs=qq&dst_uin='.get_comment_author_email().'&src_uin=qq.feixue.me&fid=blog&spec=40"' . ' onerror="this.src=\'/wp-content/themes/Art_Blog/images/head_portrait.jpg\'">' .strip_tags($comment->comment_author) . "<span>(" . timeago($comment->comment_date_gmt) . ")</span>" . "<p>". $com_excerpt ."</p>" . "<a href="" . get_comment_link( $comment->comment_ID ) ."#comment-" . $comment->comment_ID . "" title="查看 " .$comment->post_title . "">评:".$comment->post_title ."</a></li>";}
   $output .= $post_HTML;
    $output = convert_smilies($output);
    echo $output;
?>

如果你侧边栏最新评论调用使用的是下面这段代码,那么解决方案将适用于你,新代码中我调用了QQ头像,你也可以自己改回获取wordpress自身头像,代码:get_avatar(get_comment_author_email(), 40)

小结

一般用户还是关注于网站内容最好,少折腾,其实这些升级都不是必须的,一旦遇到问题,因为版本比较新,百度上也很难找到问题解决方案,只能自己多摸索,我也是有一两年多没升级所以才一次性全部升级到最新版本,接下来又可以偷懒一两年

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(1) 打赏
谢谢你请我吃鸡腿*^_^*

支付宝扫一扫打赏

微信扫一扫打赏

标签:

上一篇:

下一篇:

相关推荐

0 条评论关于"【已解决】WordPress升级后5.5.1后无法调用最新评论"

最新评论

    暂无留言哦~~

博客简介

一个关注Web前端开发技术、关注用户体验、坚持更多原创实战教程的个人网站,梦想一旦被付诸行动,就会变得神圣,愿景:成为宇宙中最具有代表性的前端技术类博客。主题源码 

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 276 篇
  • 草稿数目: 0 篇
  • 分类数目: 15 个
  • 独立页面: 7 个
  • 评论总数: 976 条
  • 链接总数: 11 个
  • 标签总数: 474 个
  • 注册用户: 2 人
  • 访问总量: 8,751,347 次
  • 最近更新: 2020年11月25日
服务热线:
 173xxxx7240

 QQ在线交流

 旺旺在线