php - 服务器中的图像未出现在 WordPress 媒体库中

标签 php mysql sql wordpress

我在搞一些 SQL 查询,结果搞砸了;从那时起,网站服务器上存在的图像不会出现在 WordPress 媒体库中。这似乎是 wp_postswp_postmeta 表的问题。

我认为我的数据库已损坏;虽然,当通过 http://example.com/wp-content/uploads/YEAR/MONTH/FILE_NAME 访问图像时,图像会显示出来,并且在主页上也显示得很好,但是它们WordPress 媒体库中缺失。仅显示新上传的图像。我需要尽快解决这个问题。

任何帮助将不胜感激。谢谢。

最佳答案

媒体库中的项目由 wp_posts 中的行表示。他们有 post_type = 'attachment'。您是否删除了其中一些行?

编辑:要使某个项目出现在 WordPress 的媒体库中,它必须两者都出现在 /uploads/YYYY/MM/ 中的某个位置文件夹以及 wp_posts 表中的 'attachment' 行。每个媒体库项目在该表中都有自己的行。更改该表中的 post_type 值似乎不太可能恢复您的媒体库。除非它们仍然在那里,并且您在闲逛时以某种方式更改了它们的 post_type 值。不太可能。

您有数据库备份吗?如果是这样,请将其恢复。这是你最好的选择。

无论如何,在开始尝试修复此问题之前先进行备份。然后定期进行备份。这并不难,而且可以让你在未来免去无尽的悲伤。

您有几十件丢失的元素吗?如果是这样,请使用 FTP 从 WordPress 文件系统下载它们,然后使用 WordPress 媒体库功能重新上传它们,以重新创建它们。

编辑不要从您的uploads/YYYY/MM文件夹中删除它们;只需重新上传它们即可。它们最终会出现在这些文件夹中的两个位置,其中较新的两个位置对应于 wp_posts 中新创建的 'attachment' 行。使用文件夹中的旧图像文件,旧帖子仍应正确呈现。

如果某些图像在上传中出现两次是一个问题,请参阅我上面关于备份的问题。

或者,尝试使用 AddFromServer 插件来恢复丢失的项目。 https://wordpress.org/plugins/add-from-server/

您是否有数百件或更多丢失的元素?如果是这样,您可能会陷入真正不愉快的境地。

关于php - 服务器中的图像未出现在 WordPress 媒体库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44079608/

相关文章:

php - 用于替换 html 代码中的 css 类的正则表达式

javascript - php不向表中插入数据

php - PDO 多查询 "SQLSTATE[HY000]: General error"

mysql 仅在其他表中存在值时才执行插入

MySQL:表达两个具有公共(public)基表外键的表的完全联接

javascript - 我的代码中可以有多少个循环是否有限制?

php - 自定义 Laravel 护照 BearerTokenResponse

Mysql在案例内部加入

c# - 每 n 秒调用一次存储过程

sql - 查询以查找空闲时间,即 GPS lat long 在 15 分钟内显示相同的坐标