您好,我正在为分类网站创建一个主题,并希望列出作为帖子自定义字段提及的前 8 个热门城市。这意味着拥有最多分类广告的前 8 个城市。它看起来像这样
http://i50.tinypic.com/6f7fww.png
我看到了一些对自定义字段进行排序的示例,但无法使其正常工作。
您好,我正在为分类网站创建一个主题,并希望列出作为帖子自定义字段提及的前 8 个热门城市。这意味着拥有最多分类广告的前 8 个城市。它看起来像这样
http://i50.tinypic.com/6f7fww.png
我看到了一些对自定义字段进行排序的示例,但无法使其正常工作。
您可以尝试使用 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>';
做这个 :
<?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
?>
我可能做得有点快,但至少,你会明白的