2011-10-29 30 views
0

我試圖獲得一個自定義字段的所有元值的總和。我現在得到整個網站的元值的總和。我希望它被限制在您所在的類別如何獲取某個類別中所有帖子的特定自定義字段的所有元值?

現在,該代碼如下所示:

  <?php 
      $thevariable = $wpdb->get_var($wpdb->prepare(" 
      SELECT SUM($wpdb->postmeta.meta_value) 
      FROM $wpdb->postmeta, $wpdb->posts 
      WHERE $wpdb->postmeta.meta_key='mycustomfield' 
      AND $wpdb->postmeta.post_id=$wpdb->posts.id 
      ")); 
      echo '<h1>' . $thevariable . '</h1>'; 
      ?> 

有人可以幫我過濾掉一類?

將是驚人的!

M

回答

0

在你的WP文件中,你可以添加這行;我想它會做你正在尋找的東西。

<?php 

    $MySum = 0; 

    $args = array(
'category_name' => 'MyCategory', 
    'meta_key' => 'mycustomfield', 
    'posts_per_page' => '-1'); 

    // The Query 
    $the_query = new WP_Query($args); 

    // The Loop 
    while ($the_query->have_posts()) : $the_query->the_post(); 
     $MySum += get_post_meta($post_id, $key, true); 
    endwhile; 

    echo '<h1>' . $MySum . '</h1>'; 
    // Reset Post Data 
    wp_reset_postdata(); 


    ?> 
+0

pimpin發出的答案是正確的,但不是一個聰明的答案,它會導致大量無用的內存丟失。 你可以使用只有一個查詢來實現同樣的事情 - 查詢wp_postmeta表,這是自定義字段被保存的位置(使用sum()sql函數)。 –

相關問題