2011-10-29 32 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函数)。 –

相关问题