Wordpress 循环 - 只有 Meta_Key 的唯一值
Posted
技术标签:
【中文标题】Wordpress 循环 - 只有 Meta_Key 的唯一值【英文标题】:Wordpress Loop - Only Unique Values for Meta_Key 【发布时间】:2013-07-08 03:34:56 【问题描述】:我在分组元值时遇到问题。 查询查找带有元键“公司”的帖子。我想要一个独特的颜色列表,例如:蓝色红色黄色
array_unique 不成功,还有自定义 mysql 查询。
<?php
$args = array(
'category_name' => $cat_name,
'posts_per_page' => '60',
'paged' => $current_page,
'meta_query' => array(
array(
'key' => 'company',
'value' => 'microsoft',
'compare' => 'like'
)
)
);
$my_query = new WP_Query($args);
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;
?>
<?php echo get('color'); ?>
// Outputs yellow yellow blue yellow red yellow
<?php endwhile; ?>
当前输出为:黄黄蓝黄红黄
谢谢。
编辑:
谢谢你的帮助!!!
这是最终的工作代码:
<?php
$current_page = (get_query_var('paged')) ? get_query_var('paged') : 1;
$cat_name = get_category(get_query_var('cat'))->name;
$args = array(
'category_name' => $cat_name,
'posts_per_page' => '60',
'paged' => $current_page,
'meta_query' => array(
array(
'key' => 'company',
'value' => 'microsoft',
'compare' => 'like'
)
)
);
$my_query = new WP_Query($args);
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;
$colors[] = get('color');
// Creates an array of all colors
endwhile;
$colors = array_unique($colors);
// Removes duplicates;
foreach($colors as $color)
echo $color.' ';
?>
【问题讨论】:
这有帮助吗? codex.wordpress.org/Plugin_API/Filter_Reference/posts_distinct 嘿,谢谢,但不起作用。似乎只适用于插件。不知道该怎么办。已经搜索了整个网络。 【参考方案1】:while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;
$colors[] = get('color');
// Creates an array of all colors
endwhile;
$colors = array_unique($colors);
// Removes duplicates;
foreach($colors as $color)
echo $color;
【讨论】:
不,仍然有重复的颜色。 :-( 我不明白。为什么这不起作用? 现在它工作了!!!!已将行array_unique($colors);
更改为 $colors = array_unique($colors);
这可能足以解决您的问题,但是,想象一下从数据库中取出 10000 行只是为了看到三个颜色组的情况。如果可能的话,应该在mysql方面做得更好:)
你有mysql解决方案吗?那太好了!
看这里***.com/questions/8571902/…以上是关于Wordpress 循环 - 只有 Meta_Key 的唯一值的主要内容,如果未能解决你的问题,请参考以下文章