我正在Wordpress中运行查询,以从自定义帖子类型中获取发言人列表。我只需要返回一个发言人的一个实例,即使发言人可能多次作为自定义帖子类型的元数据出现。
因此,例如,如果我查询并像这样返回列表: 鲍勃,鲍勃,鲍勃,约翰,萨利,鲍勃,鲍勃,约翰,鲍勃
我希望它是: 鲍勃,约翰,莎莉
我不确定如何使用PHP将所有匹配的结果分组。
这是我的查询:
global $post;
$args = array (
'post_type' = 'event',
'posts_per_page' = -1,
'post_status' => 'publish',
'fields' => 'ids',
'meta_query' => array (
'relation' => 'AND'
array (
'key' => 'pt_eventSpeakerType',
'value' => 'Lead Speaker',
'compare' => '=',
),
),
);
$posts = get_posts($args);
if($posts) :
foreach($posts as $post):setup_postdata($post);
echo get_post_meta($post->ID, 'pt_eventSpeaker' true).'<br>';
endforeach;
endif;
wp_reset_postdata();
感谢您的帮助!
答案 0 :(得分:0)
根据您的描述,我认为您没有正确创建SQL查询。方法get_posts($args);
可能不会返回不同的结果,这可能是重复值的问题。希望对您有所帮助。
答案 1 :(得分:0)
我知道了。这可能不是最好的方法,但是它可以工作并且不需要任何查询更改:我发现了一个名为onDeviceTextRecognizer
首先,我必须在array_unique
循环中返回所有发言人姓名,然后将其转换为自己的数组。它消除了foreach
返回的所有其他对象。
然后使用WP_Query
函数将这些分类到每个发言人姓名的单个条目数组中。
最后,使用另一个array_unique
遍历这些名称并输出它们。
foreach