根据子帖子值查找帖子

时间:2011-03-24 作者:saalon

我正在创建一个插件,添加两个自定义帖子类型,其中一个总是另一个的子类型。父post类型用于事件,子post类型用于表演。在进入循环之前,我希望能够找到一组在特定日期有表演的事件。Performance date作为元字段存储在Performance post上。然后循环将列出每个匹配的事件,就像在标准的存档后循环中一样。

我的首选是查询事件日志类型,因为这让我觉得分页更容易管理,但如果有更好的实现只涉及查询性能,我愿意这样做,但我想看看是否有一种工具可以限制基于子日志中字段的查询。

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

子帖子与其父母相关(通过“post\\u parent”字段),反之亦然。因此,您必须首先查询子帖子类型,然后获取所有结果的父项。

// obviously these variable names and key names might not apply,
// change them as necessary
$performances = get_posts( array(
     \'meta_key\' => \'the_performance_date_custom_field\',
     \'meta_value\' => $date,
     \'post_type\' => \'performance\' ) );

// extract the parent post ID\'s from each of the returned performances   
$event_ids = array_map( 
     create_function(\'$post\',\'return $post->post_parent\'), 
     $performances );
$event_ids = array_unique( $event_ids ); // dump any duplicate events

// and finally, get the events from their ids
$events = get_posts( array(
    \'post_type\' => \'event\',
    \'post__in\' => $event_ids ) );

结束

相关推荐