不知道大家是否留意过WordPress网站数据表wp_postmeta中的meta_value有很多值为{{unknown}}的记录,对应的meta_key的值是_oembed_开头的内容。具体如下图所示:
在网络上找到很久,都没有找到相关介绍和禁止产生此类数据的方法,不过倒是介绍了可能是WordPress文章嵌入(post embed)功能,即是在编辑文章时,粘贴一篇文章或视频或图片的URL地址,就会自动展示这篇文章或视频或图片。
知道了是WordPress嵌入功能的问题,那么我们想办法禁用即可,具体禁用方法详见『禁用WordPress嵌入功能以提升WordPress性能』。不过boke112百科参考这个方法中的插件或代码,然后在经典编辑器中粘贴某张图片URL地址还是会自动显示图片,而不是显示URL地址,发布文章后还是会在数据表wp_postmeta中自动插入一条meta_value值为{{unknown}}的记录。
经过测试,直接粘贴某张图片URL地址到文章编辑器并发布文章,就会在数据表wp_postmeta中自动插入一条meta_value值为{{unknown}}的记录;如果是通过添加媒体的“从URL插入”方式添加图片到文章编辑器并发布文章,就不会在数据表wp_postmeta中自动插入一条meta_value值为{{unknown}}的记录。
所以目前boke112百科就是通过添加媒体的“从URL插入”方式来防止生成{{unknown}}数据,不知道大家还有什么好的方法?
另外,如果你想要删除数据库中的{{unknown}}数据,可以通过以下MySQL实现,记得将代码中的wp_改为你的网站表前缀。
DELETE FROM wp_postmeta WHERE meta_value = '{{unknown}}';
经过测试,我们可以通过修改WordPress系统文件来达到禁止WordPress数据表生成{{unknown}}数据的目的,我们只需要找到网站根目录中的/wp-includes/class-wp-embed.php文件,以WordPress6.5.2版本为例,在第315行代码前添加//,并保存文件即可。
//update_post_meta( $post_id, $cachekey, '{{unknown}}' );