【问题标题】:WordPress - Issue when displaying posts using a custom select queryWordPress - 使用自定义选择查询显示帖子时出现问题
【发布时间】:2010-04-07 19:39:00
【问题描述】:

我需要使用自定义选择查询显示一些帖子。此自定义选择查询需要获取两个分类中的帖子。

查看查询:

SELECT *
FROM $wpdb->posts
LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID =
$wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy
ON($wpdb->term_relationships.term_taxonomy_id =
$wpdb->term_taxonomy.term_taxonomy_id)
LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id =
$wpdb->terms.term_id)
WHERE
$wpdb->posts.post_type = 'post'
AND $wpdb->posts.post_status = 'publish'
AND $wpdb->term_taxonomy.taxonomy = 'continentes'
AND $wpdb->terms.slug = 'asia'
AND $wpdb->term_taxonomy.taxonomy = 'pais'
AND $wpdb->terms.slug = 'china'
ORDER BY $wpdb->posts.post_date DESC

如果只使用一个条件,查询效果很好,喜欢它:

... 和 $wpdb->term_taxonomy.taxonomy = 'continentes' 和 $wpdb->terms.slug = '亚洲' ...

但我需要分类学“continentes”和“pais”中的帖子。

最好的问候

【问题讨论】:

    标签: wordpress


    【解决方案1】:
    ...
    AND 
    ($wpdb->term_taxonomy.taxonomy = 'continentes' 
    OR 
    $wpdb->term_taxonomy.taxonomy = 'pais')
    ...
    

    如果 Wordpress 支持,你可以使用IN:

    ...
    AND $wpdb->term_taxonomy.taxonomy in ('continentes', 'pais')
    ...
    

    【讨论】:

      【解决方案2】:

      假设每个帖子只有 1 个分类,您的查询不会返回任何结果,因为帖子不能同时位于大洲和派斯。您需要将 where 子句更改为如下所示:

      AND ($wpdb->term_taxonomy.taxonomy = 'continentes' OR $wpdb->term_taxonomy.taxonomy = 'pais')
      

      【讨论】:

      • 您好,感谢您的回复!该帖子具有这两种分类法。 “大陆”和“派斯”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 2016-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多