【问题标题】:Wordpress, WP_Query with custom taxonomy and custom post type具有自定义分类和自定义帖子类型的 Wordpress、WP_Query
【发布时间】:2010-04-15 15:54:34
【问题描述】:

此代码获取 10 个链接到 term_name 的所有类型的帖子;

global $wp_query;
query_posts( array(  
    "taxonomy_name" => "term_name", 
    'showposts' => 10 ) 
);

此代码获取 10 个自定义帖子类型“消息”的帖子;

global $wp_query;
query_posts( array(  
    'post_type' => 'message' 
    'showposts' => 10 ) 
);

然而,此代码始终忽略 post_type 要求,但仍选择链接到 term_name 的所有帖子类型;

global $wp_query;
query_posts( array(  
    'post_type' => 'message' ,
    "taxonomy_name" => "term_name",
    'showposts' => 10 ) 
);

我看不出两者如何单独工作,但它们不能一起工作,除非这可能是一个错误 - 有什么想法吗?

【问题讨论】:

  • 当你说它不起作用时,会发生什么?你得到错误,查询什么也没返回,还有什么?
  • "然而,此代码总是忽略 post_type 要求,但仍选择链接到 term_name 的所有帖子类型;" - 我获得了与该分类术语相关的所有帖子类型,而不仅仅是指定的消息。 IE。最后一段代码的行为与第一段相同。

标签: wordpress


【解决方案1】:

看起来像一个错误。你试过custom select query吗?应该这样做:

$querystr = "
    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 = 'message' 
    AND $wpdb->posts.post_status = 'publish'
    AND $wpdb->term_taxonomy.taxonomy = 'taxonomy_name'
    AND $wpdb->terms.slug = 'term_name'
    ORDER BY $wpdb->posts.post_date DESC
    LIMIT 10
    ";

$pageposts = $wpdb->get_results($querystr, OBJECT);

我在构造查询时使用了this answer。

【讨论】:

【解决方案2】:

已提交 - core.trac.wordpress.org/ticket/13020。修复只是将query.php文件的一行改为if语句来检查post_type是否为空。

【讨论】:

    【解决方案3】:

    使用“category_name”而不是“taxonomy_name”。适用于 WP 3.5.2

    query_posts( array(  
        'post_type' => 'message',
        'category_name' => 'term_name',
        'showposts' => '10' ) 
    );
    

    【讨论】:

      猜你喜欢
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多