WordPress查询 - 排除重复的元值

时间:2014-01-20 19:14:46

标签: php arrays wordpress unique

我有一个名为country的自定义元文件,我想从元键中获取值并将它们添加到下拉列表中,但我遇到的问题是我不需要显示所有的元数据值(因为其中一些重复)只是唯一的值。

对于示例我正在展示:意大利德国意大利意大利美国和我只想展示:意大利德国美国

$query = new WP_Query(
            array(               
                'meta_key' => 'country',
                'orderby' => 'meta_value',
                'order'=> 'ASC',
                'posts_per_page' => -1,
            )               
         );
if( $query->have_posts() ){
    while( $query->have_posts() ){
        $query->the_post();
        $metas = get_post_custom($post->ID);
?>
    <option value="<?php echo $metas['country'][0]; ?>">
        <?php echo $metas['country'][0]; ?>
    </option>

<?php

    }//while
wp_reset_query();
wp_reset_postdata();
}//if

1 个答案:

答案 0 :(得分:3)

我建议使用自定义查询从数据库中获取meta_key“countries”的所有不同值。

<?php
global $wpdb; 

$countries = $wpdb->get_results( 
   "SELECT DISTINCT(meta_value) 
    FROM $wpdb->postmeta
    WHERE meta_key = 'country'
    ORDER BY meta_value"
);

if($countries){ 

    echo '<select name="countries">';

    foreach ( $countries as $country ) {
    echo '<option value="' .$country->meta_value .'">';
        echo $country->meta_value;
        echo '</option>';
    }

    echo '</select>';

} 

?>