列出帖子中使用的最受欢迎的8个城市(自定义字段)

时间:2012-11-17 19:55:16

标签: wordpress sorting custom-fields

您好,我正在为分类广告网站创建主题,并希望列出作为帖子自定义字段提到的前8个热门城市。这意味着排名最高的前8个城市。它看起来像这样

http://i50.tinypic.com/6f7fww.png

我看到了一些排序自定义字段的示例,但无法使其正常工作。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用WPDB和SQL执行此操作:

global $wpdb;
$cities = $wpdb->get_col( "SELECT meta_value, COUNT(*) AS c 
FROM $wpdb->postmeta 
WHERE meta_key = 'city'
GROUP BY meta_value 
ORDER BY c DESC" );

用实际的元键替换city。 $ cities将是一个数组,按照相应元字段中包含城市的帖子数量排序。

要打印此数组$ cities,您可以使用以下代码:

echo '<ul>';
foreach( $cities as $city ) {
    echo '<li>' . $city . '</li>';
}
echo '</ul>';

答案 1 :(得分:-1)

这样做:

            <?php

              $custom_fields = get_post_custom($post_id);
              // Retrieves your custom fields
              $my_city_custom_field = $custom_fields['city'];
              // Retrieve all values for your "city" custom field
              foreach ( $my_city_custom_field as $key => $value )
                $cities[$value]=$city[$value]+1;
                // add one to the city index of the cities table
                // So first time London comes up you get 1, second time 2, etc.

                asort($cities);
                // sorts the $cities table by value

               foreach ( $cities as $key => $value )
                echo($key);
                // print the city's names, in proper order

            ?>

我可能有点快,但至少,你会明白这个想法