我有一个正在检查自定义帖子类型元字段的WP查询。
我有两种自定义帖子类型:
只需创建国家/地区自定义帖子类型,即可将媒体帖子类型的内容拉入。
媒体CPT包含2个元场:
_rtl_media_filter
。_rtl_country_filter
,这会将国家/地区CPT名称拉入下拉列表,并且可以从媒体帖子类型中进行选择。目的是在查看国家/地区CPT时显示与国家/地区CPT相关的所有媒体类型。
我有这个循环,这是有效的。但我想知道我是否可以按媒体类型_rtl_media_filter
对单个循环项目进行分组?而不是为每个创建多个循环?
<?php
// Grab this posts ID
$post = $wp_query->post;
$this_id = $post->ID;
// Query the meta vaules against the posts ID
$args = array(
'post_type' => 'media',
'meta_query' => array(
'relation' => 'OR',
array( // TV
'relation' => 'AND',
array(
'key' => '_rtl_media_filter',
'value' => 'tv',
'compare' => '=',
),
array(
'key' => '_rtl_country_filter',
'value' => $this_id,
'compare' => '=',
),
),
array( // DIGITAL
'relation' => 'AND',
array(
'key' => '_rtl_media_filter',
'value' => 'digital',
'compare' => '=',
),
array(
'key' => '_rtl_country_filter',
'value' => $this_id,
'compare' => '=',
),
),
array( // RADIO
'relation' => 'AND',
array(
'key' => '_rtl_media_filter',
'value' => 'radio',
'compare' => '=',
),
array(
'key' => '_rtl_country_filter',
'value' => $this_id,
'compare' => '=',
),
),
),
'posts_per_page' => -1,
);
$the_query = new WP_Query( $args );
if($the_query -> have_posts()) :
while ($the_query -> have_posts()) : $the_query -> the_post();
echo '<h2>' . the_title() . '</h2>';
endwhile;
wp_reset_postdata();
endif;
?>
这就是我想要输出的方式:
ITV | ITV2 | ITV3
Radio 1 |第二广播电台
HUB 1 | HUB 2
答案 0 :(得分:0)
因此,在Antonis指出按meta_value排序之后,我想出了它可以做到的方式。对于其他任何尝试过此问题的人来说,解决方案就在于这几行:
'orderby' => 'meta_value',
'meta_key' => '_rtl_media_filter',
将这些添加到循环查询的底部。