最新把网站所有应用版本都升级了,包括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)
一般用户还是关注于网站内容最好,少折腾,其实这些升级都不是必须的,一旦遇到问题,因为版本比较新,百度上也很难找到问题解决方案,只能自己多摸索,我也是有一两年多没升级所以才一次性全部升级到最新版本,接下来又可以偷懒一两年
支付宝扫一扫打赏
微信扫一扫打赏
共 0 条评论关于"【已解决】WordPress升级后5.5.1后无法调用最新评论"
最新评论