我使用此代码查询所有从阵列的类别和每求和类别meta_key值:
<?
$arr_cat = array(1,34,64,32);
foreach ($arr_cat as $cat) {
$MySum = 0;
$args = array(
'cat' => $cat,
'meta_key' => 'proyecto_votos',
'post_type' => 'proyecto',
'posts_per_page' => '-1');
$the_query = new WP_Query( $args);
while ( $the_query->have_posts() ) : $the_query->the_post();
$MySum += get_post_meta($post->ID, 'proyecto_votos', true);
endwhile;
wp_reset_postdata();
}
//var_dump($arr_cat);
?>
它工作正常。 但我不能只显示前5个类别,有custom_value的最总和。 请你能帮助我在这。
非常感谢。
仅适用于前5位的职位
$args = array(
'cat' => $cat,
'post_type' => 'proyecto',
'meta_key' => 'proyecto_votos',
'orderby'='meta_value_num',
'posts_per_page' => '5' // top 5 posts using ASC order by default
);
posts_per_page => -1
会显示所有帖子。
参考。
最后,与谷歌的一点点我知道了:-):
<? $totalvotes = get_meta_values( 'proyecto_votos', 'proyecto' ); ?>
<?
foreach ($arr_cat_reg as $cat) {
$MySum = 0;
$args = array(
'cat' => $cat,
'meta_key' => 'proyecto_votos',
'post_type' => 'proyecto',
'posts_per_page' => '-1' );
$the_query = new WP_Query( $args);
while ( $the_query->have_posts() ) : $the_query->the_post();
$MySum += get_post_meta($post->ID, 'proyecto_votos', true);
endwhile;
//echo $MySum.'<br/>';
$percent = $MySum * 100;
$percent = $percent / $totalvotes;
//echo $percent;
wp_reset_postdata();
$catslug = get_cat_slug($cat);
$most_voted[] = array('region' => $catslug, 'votos' => $MySum);
}
$sortArray = array();
foreach($most_voted as $region){
foreach($region as $key=>$value){
if(!isset($sortArray[$key])){
$sortArray[$key] = array();
}
$sortArray[$key][] = $value;
}
}
$orderby = "votos";
array_multisort($sortArray[$orderby],SORT_DESC,$most_voted);
$top5 = array_slice($most_voted, 0, 5);
?>
我希望这可以帮助别人。