我有一个非常类似的问题,在一个有8个博客(其中2个)的多站点上。
在我的例子中,我发现一些图像的meta\\u值“\\u wp\\u attachment\\u metadata”在表中已损坏wp_xx_postmeta. 这可能是由于某个插件导致的,因为在这个问题之前我做的最后一件事是删除几个未使用的插件。但重新安装并没有解决这个问题。。。
简而言之,我从具有正确值的旧数据库备份中恢复了meta\\u值。
以下是我所做的:
0-首先,我将旧数据库的SQL文件导入到一个单独的数据库中,以便在MySQL服务器中同时使用这两个数据库。
1-从中选择wp\\U xx\\U帖子中所有附件的IDold database
SELECT * FROM wp_xx_posts where post_type=\'attachment\';
其中“xx”是有问题的博客的编号。
2-在wp\\U xx\\U Posteta中为来自的附件选择所有meta\\u id和meta\\u valueold database:
Select meta_id, meta_value from wp_xx_postmeta where meta_key = \'_wp_attachment_metadata\' and (post_id = 111 or post_id = ...);
对于所有图像ID。通过在Excel电子表格和记事本之间复制/粘贴/替换数据,可以轻松创建所有ID的查询。
3-创建了一个SQL文件,其中包含要导入到CURRENT database. 此文件可能有点大,每一行都类似于:
UPDATE wp_xx_postmeta set meta_value = \'a:5:...a large serialized bunch of data\' WHERE meta_id = 111;
UPDATE wp_xx_postmeta set ...
对于所有图像。再次使用Excel/记事本。
4-然后我使用mysql -u root -p current_database < sqlfile.sql
当我重新加载网站时,媒体库中的所有缩略图和图像都正常工作。