更新到 WordPress 5.5.1 好几天了,看起来没什么问题。今天逛自己博客,发现读者博友页面只有「1.none data.」,前阵子还好好的,肯定是最近升级 WordPress 附送的。
看了一下主题代码,看起来没什么问题;debug.log 也没有相关错误信息。无能为力,寻思着干掉页面还是换代码……看到评论选择 sql 条件有一个 AND comment_type='',想起最近水煮鱼博客 RSS 看到过相关内容,说是 WordPress 5.5「comment_type」有更新:
WordPress 评论表的 comment_type 字段的默认值从空字符串改成 'comment'
WordPress 之前评论表的 comment_type 字段的默认值一直是空字符,为了更加的语义化,从 5.5 版本开始,WordPress 已经将强制设置为 "comment",这项改动是为了以后更加的方便实现自定义 comment_type 注册。
WordPress 是怎么将现有的 comment_type 字段的值改成 "comment" 的呢?
WordPress 5.5 会新增一个定时作业:wp_update_comment_type_batch,它会每次将 100 条空的 comment_type 评论改成 "comment",当然可以通过 wp_update_comment_type_batch_size 这个 filter 设置每次修改的数量。
如果你的主题或者插件中使用了 comment_type 字段,并且是空值,可能会导致评论在网站不会显示……
换上 AND comment_type='comment',刷新缓存,刷新页面……真好,页面又回来了。
wp_blacklist_check 也更新了:
PHP Deprecated: 自5.5.0版本起,已不建议使用wp_blacklist_check,请换用wp_check_comment_disallowed_list()。
看了一下新代码,直接使用 wp_check_comment_disallowed_list 替换掉 wp_blacklist_check 就行:
function wp_blacklist_check( $author, $email, $url, $comment, $user_ip, $user_agent ) {
_deprecated_function( __FUNCTION__, '5.5.0', 'wp_check_comment_disallowed_list()' );
return wp_check_comment_disallowed_list( $author, $email, $url, $comment, $user_ip, $user_agent );
}
附 WordPress 5.5.1 官方安装包下载地址:绿皮火车下载(2020-09-01,md5:63b43e1412557c07691de74a9863800d)
学习一下,我有个站升级了也有点问题,升级了最新主题就没事了。
@奶爸建网站笔记 额,那应该是新主题适配了。
老头的动手能力还是强啊,233
@老麦 哪里,要不是看到过相关信息,肯能都不知道怎么修复呢。
更新到这个版本后,编号排序就显示不出来了,前面都显示为点了。你有遇到吗?
@方知 啥编号?变为点应该是 html 原本的 ol 变为 ul 了。