arrays - पोस्ट्स से Wordpress sum meta_values ​​और उन्हें श्रेणी प्रति क्रम




categories (2)

अंत में गूगल के थोड़ा के साथ मुझे मिल गया :-):

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

मुझे आशा है कि यह किसी को मदद करता है।

मैं एक श्रेणी से सभी श्रेणियों को क्वेरी करने के लिए इस कोड का उपयोग कर रहा हूं और प्रति श्रेणी 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 श्रेणियों वाले कस्टम_ मूल्य के साथ ही नहीं दिखा सकता क्या आप इस पर मेरी सहायता कर सकते हैं?

बहुत बहुत धन्यवाद।


केवल शीर्ष 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 सभी पोस्ट दिखाएगा

संदर्भ।