如何使用mysql查询获得带有标题,内容和特色图像的Wordpress帖子

时间:2016-06-21 10:30:57

标签: mysql wordpress

嗨,我知道这个问题似乎很熟悉,但请阅读完整的问题。 我想使用mysql查询获得Wordpress帖子标题,精选图​​片,内容。 我尝试了很多查询但是我遇到了错误。

没有错误,MySQL查询返回空。我使用的是Wordpress 4.5.2。

我找到了这个查询,但它给了我一个空的结果。

    SELECT p1.*, wm2.meta_value 
    FROM wp_posts p1 
    LEFT JOIN wp_postmeta wm1 ON (
    wm1.post_id = p1.id
    AND wm1.meta_value IS NOT NULL
    AND wm1.meta_key = '_thumbnail_id'
    )
    LEFT JOIN
    wp_postmeta wm2
    ON (
    wm1.meta_value = wm2.post_id
    AND wm2.meta_key = '_wp_attached_file'
    AND wm2.meta_value IS NOT NULL
    )LEFT JOIN
   wp_term_relationships wtr
   ON
 (
    object_id=p1.id
   )
   WHERE
   p1.post_status='publish'
   AND p1.post_type='post'
   AND 'term_taxonomy_id'='454'
   ORDER BY p1.post_date DESC
   LIMIT 0,10

如何改进此查询以返回结果?

1 个答案:

答案 0 :(得分:0)

SQL的WHERE子句中有错误:

AND 'term_taxonomy_id'='454'

字符串'term_taxonomy_id'永远不会等于字符串'454'

首先,要检查,请从查询中完全删除此条件。如果您返回结果并且仍希望按此taxonomy_id进行过滤,则删除字段名称周围的单引号:

SELECT p1.*,
    wm2.meta_value
FROM wp_posts p1
LEFT JOIN wp_postmeta wm1 ON (
        wm1.post_id = p1.id
        AND wm1.meta_value IS NOT NULL
        AND wm1.meta_key = '_thumbnail_id'
        )
LEFT JOIN wp_postmeta wm2 ON (
        wm1.meta_value = wm2.post_id
        AND wm2.meta_key = '_wp_attached_file'
        AND wm2.meta_value IS NOT NULL
        )
LEFT JOIN wp_term_relationships wtr ON (object_id = p1.id)
WHERE p1.post_status = 'publish'
    AND p1.post_type = 'post'
    AND term_taxonomy_id = '454'
ORDER BY p1.post_date DESC LIMIT 0,10

在MySQL中,您可以使用字段名称周围的反引号,但单引号用于字符串文字。如果你把它们混在一起,你就会遇到麻烦。

如果您仍未获得结果,请考虑删除p1.post_statusp1.post_type限制,以确定您是否获得了结果并进行相应调整。