0

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

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

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

4

2 回答 2

2

您可以尝试使用 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" );

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

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

echo '<ul>';
foreach( $cities as $city ) {
    echo '<li>' . $city . '</li>';
}
echo '</ul>';
于 2012-11-17T20:09:40.273 回答
-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

            ?>

我可能做得有点快,但至少,你会明白的

于 2012-11-18T00:37:09.550 回答