类别的所有自定义字段的总和

时间:2015-06-11 06:01:23

标签: php wordpress categories

我在帖子number上有自定义字段。

在category.php的前端,我需要总计当前类别中number的所有帖子的值。

例如,如果当前类别有3个帖子,并且在每个帖子中number值分别为1510,则在前面 - 它需要显示总16

我不完全确定从哪里开始。

我现在的循环:

<?php if ( have_posts() ) : ?>

        <h1><?php printf( __( 'Category Archives: %s', 'twentythirteen' ), single_cat_title( '', false ) ); ?></h1>
        <p></p>

    <?php /* The loop */ ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <?php get_template_part( 'content', get_post_format() ); ?>
    <?php endwhile; ?>

<?php else : ?>
    <?php // ?>
<?php endif; ?>

感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

谢谢大家。那里有很多帮助我解决这个问题的解决方案(以及谷歌的一点帮助):

<?php 
$args = array(
    'numberposts' => -1,
    'offset' => 0, 
    'category' => $category
);
$numbers = get_posts( $args );

$total = 0;
foreach( $numbers as $numbersID ) {
    $single = get_post_meta( $numbersID->ID, 'numbers', true );
    $total += $single;
}
echo $total;
?>

关键是知道增加一个变量+ = as @rnevius建议,我不知道。

答案 1 :(得分:1)

您尝试实现的更短版本(这也减少了对数据库的调用)将如下所示:

<p>
    <?php
        $total = 0;
        foreach( $wp_query->posts as $number ) {
            $total += get_post_meta( $number->ID, 'numbers', true );
        }
        echo $total;
    ?>
</p>

如其他评论中所述,您不需要其他循环,因为您的帖子已存在于$wp_query中。

答案 2 :(得分:-2)

假设您使用MySQL使用SUM()方法来实现目标。查询可能类似于SELECT SUM(number) FROM category WHERE [drill down to a specific set of categories if neccesary];