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 的唯一值的主要内容,如果未能解决你的问题,请参考以下文章

如何显示 wordpress 页面内容?

wordpress 循环显示文章问题

php Wordpress循环/循环

Wordpress,如果循环没有结果,则不显示标题

Wordpress 循环:获取循环内的当前帖子计数

自定义 wordpress 类别循环列表页面