如何获得父母的分类?

时间:2011-03-14 作者:inwpitrust

我有两种自定义贴子类型:“艺术家”和“音乐会”,“音乐会”自定义贴子类型是“艺术家”自定义贴子类型的子类型,“艺术家”自定义贴子类型有“流派”分类法我想做什么(例如):列出属于“流行”流派艺术家的所有音乐会。

以下是对我梦想的质疑:

SELECT * FROM posts WHERE post_type = "concert" AND post_parent_term = "pop"

我认为目前没有post_parent_term, 希望我错了。。。(我知道我可以在“Concert”自定义帖子类型中添加“流派”分类法,但我真的很想知道是否有其他方法可以实现这一点)。

提前谢谢。

3 个回复
最合适的回答,由SO网友:scribu 整理而成

我想做的是(例如):列出属于“流行”类型艺术家的所有音乐会。

您可以通过两个步骤完成:

// 1. Get all the pop artist IDs
$artist_ids = get_posts( array(
  \'fields\' => \'ids\',
  \'post_type\' => \'artist\',
  \'genre\' => \'pop\'
) );

// 2. Get all the concerts associated to those artists
$artist_ids = implode( \',\', array_map( \'absint\', $artist_ids ) );

$concerts = $wpdb->get_results( "
  SELECT * FROM $wpdb->posts
  WHERE post_type = \'concert\'
  AND post_status = \'publish\'
  AND post_parent IN ({$artist_ids})
  ORDER BY post_date DESC
" );
WP\\u查询中有一个post\\u parent参数,但它doesn\'t accept an array, 因此直接查询。

SO网友:J. Taylor

父页存储在$post->post\\U parent中

因此,您可以通过这种方式获取父帖子,然后询问它的分类/类别/标记信息。

SO网友:Bainternet

不确定这是否正确,但可以创建嵌套循环:

//首先,让所有艺术家都知道流行音乐这个词

$args = array(
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'genre\',
            \'field\' => \'slug\',
            \'terms\' => \'pop\'
        ))
    \'post_type\' => \'Artist\',
    \'posts_per_page\' => -1
    );
$Artists = new WP_Query( $args );
//loop through them and get there child posts of concerts 
if ( $Artists->have_posts() ) { 
    while ( $Artists->have_posts() ) {
        $Artists->the_post();
        $last_artist = $post;
        $Concerts = new WP_Query();
        $Concerts->query(array(
                        \'post_type\' => \'concert\',
                        \'posts_per_page\' => -1,
                        \'post_parent\' => $post->ID
                        ));
        while ( $Concerts->have_posts() ) {
            $Concerts->the_post();
            //do concert stuff here
            //the_title();
            //the_content();
        }
        wp_reset_postdata();
        $post = $last_artist;
    }
}

结束

相关推荐

Saving Taxonomy Terms

我有一个有趣的问题,希望有人能尽快回答。我已经创建了自己的metabox,它基于“我的metabox代码”(下面的列表)正确地显示了我创建的“event\\u types”分类中所有术语的下拉列表。我遇到的问题是,当从下拉列表中选择不同的术语并更新帖子时,能够保存/更新与帖子相关的术语。在对各种代码位进行修补之后,我发现通过手动将term\\u ID number[用逗号分隔]输入数组区域,我得到了我想要的结果。例如,如果在保存帖子时,函数将调用此代码wp_set_post_terms( $post_id