我需要从wp_posts和wp_postmeta表中获取标题,描述(内容)和图像。
我可以使用以下查询获取图片,但无法获取标题和内容。
SELECT childpost.*
FROM wp_jtgw_posts childpost
INNER JOIN wp_jtgw_postmeta parentmeta ON (childpost.ID=parentmeta.meta_value)
WHERE parentmeta.meta_key='_thumbnail_id'
AND parentmeta.post_id=xxxx;
有人能告诉我如何获取标题和内容以及图像?
答案 0 :(得分:1)
我相信你想要这样的东西(从Wordpress schema documentation判断)
SELECT
post.id,
post.post_content,
post.post_title,
thumbnail_url.meta_value as thumbnails_url
FROM
wp_jtgw_posts as post
LEFT OUTER JOIN wp_jtgw_postmeta as thumbnail ON
post.ID = thumbnail.post_id AND
thumbnail.meta_key = '_thumbnail_id'
LEFT OUTER JOIN wb_jtgw_postmeta as thumbnail_url ON
thumbnail.meta_value = thumbnail_url.post_id AND
thumbnail_url.meta_key = '_wp_attached_file'
WHERE
post.ID=xxxx;
我已经更新了答案,回到_postmeta
表,第二个LEFT OUTER JOIN拉取thumbnail_url(meta key = '_wb_attached_file'
)以获取与thumbnail_id
相关的post_id第一个LEFT OUTER JOIN到_postmeta
表。
答案 1 :(得分:0)
您应该弄清楚如何使用WordPress的api进行此查询。例如,此查询中的表名从WordPress安装到安装不等。
但与此同时,您需要为此查询使用键/值模式。
SELECT childpost.title, childpost.description, img.meta_value AS img
FROM wp_posts
LEFT JOIN wp_postmeta img ON wp_posts.ID = img.post_id AND img.meta_key='_thumbnail_id'
技巧是将所需的键定义为ON子句的一部分,而不是在WHERE子句中定义它。即使您想要的元值丢失,使用LEFT JOIN也可以获得帖子。