一些wordpress帖子几年前就被删除了,但它们的相关媒体仍在文件系统中。
有没有一种方法可以识别帖子被删除的附件元数据,然后从文件系统中删除元数据和文件?
如果您有权访问数据库,最简单的方法就是运行SQL查询。假设数据库前缀为wp_
,则可以通过按post_type
搜索post_parent
不在wp_posts
表中的位置来SELECT
缺少父级的媒体附件。
SELECT *
FROM wp_posts
WHERE
-- the attachments
post_type = 'attachment'
AND (
-- ignore anything without a parent
post_parent != 0
-- filter on anything that has a parent that does not exist
AND post_parent NOT IN (SELECT ID FROM wp_posts)
)
将SELECT *
替换为DELETE
以从数据库中删除这些帖子。如果没有级联删除,您可能还需要检查wp_postmeta
表中post_id
与wp_posts.ID
不一致的任何条目。