column array arrays wordpress sum categories

arrays - array - Wordpress Sum meta_values ​​de publicaciones y ordénelas por categoría



php sum array column (2)

Estoy usando este código para consultar todas las categorías de una matriz y sumar los valores meta_key por categoría:

<? $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); ?>

Y funciona bien Pero no puedo mostrar solo las 5 categorías principales con la mayoría de la suma de custom_value. Por favor, puedes ayudarme en esto.

Muchas gracias.


Finalmente, con un poco de google lo tengo :-):

<? $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); ?>

Espero que esto ayude a alguien.


Solo para las 5 publicaciones principales

$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 mostrará todas las publicaciones.

Referencia.