在Wordpress DB上,WP_Posts和WP_Postmeta关系问题

时间:2014-04-20 22:56:57

标签: mysql wordpress

我正在尝试运行一个SQK查询,该查询将提取Post内容(来自WP_Posts)及其附加图像(来自WP_Postmeta)。 出于某种原因,我无法关联这两个来源的数据。 当我在加入查询时使用WP_posts.ID = WP_postmeta.post_id时,我无法同时获取内容和附加的图像URL。 对不起,如果我的问题不够明确,那就是凌晨2点:) 提前谢谢,帕维尔

PS。 假设我的内容在WP_posts.ID = 4中。出于某种原因,相应的附加图像在WP_postmeta.post_id = 5上等等。我可以做一些数学魔术来连接两者,因为它们彼此总是x + 1吗?

1 个答案:

答案 0 :(得分:1)

帖子的附加图片将位于wp_posts表中,其中post_type为“附件”,其post_parent ID设置为该帖子的ID 。实际上,每个附件都以其自身的方式存储为帖子,并且post_parent表示附件附加到哪个帖子。

因此,要检索ID为1898的帖子的所有附件的所有附件元数据行(可能会有多个),请尝试以下操作:

SELECT
    wp_postmeta.*
FROM 
    wp_posts the_post 
        INNER JOIN wp_posts the_attachments ON the_post.id = the_attachments.post_parent
        INNER JOIN wp_postmeta ON the_attachments.id = wp_postmeta.post_id
WHERE
    the_attachments.post_type = 'attachment' AND
    the_post.id = 1898