我在帖子number
上有自定义字段。
在category.php的前端,我需要总计当前类别中number
的所有帖子的值。
例如,如果当前类别有3个帖子,并且在每个帖子中number
值分别为1
,5
和10
,则在前面 - 它需要显示总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; ?>
感谢任何帮助。
答案 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];