奇怪的问题,这在我的本地安装上运行正常,但在我的实时服务器上,当值为0时会抛出错误。
ARRAY_SUM()将参数1视为阵列,为空目标
<?php
function author_rating_total() {
$user_id = get_the_author_meta( 'ID' );
$query = array (
'author' => $user_id,
'suppress_filters' => 'true', //lets skip some unnessecery sql queries
'posts_per_page' => -1
);
$queryObject = new WP_Query($query); while($queryObject->have_posts()) : $queryObject->the_post();
$post_ratings_data = get_post_custom(get_the_id());
$post_ratings_score = intval($post_ratings_data['epicredvote'][0]);
$ratings_array[] = $post_ratings_score;
endwhile;
$ratings_sum = array_sum($ratings_array);
if ($ratings_sum > 0) {
$ratings_sum = '' . $ratings_sum;
}
echo $ratings_sum;
wp_reset_query();
}
?>
答案 0 :(得分:0)
如果你在while循环之前定义$ ratings_array那么它应该可以工作
$ratings_array = array();
$wpQuery = etc
OR 如果在array_sum()周围包装条件语句:
$ratings_sum = 0;
if (is_array($ratings_array)){
$ratings_sum = array_sum(etc);
}
答案 1 :(得分:0)
如果值不为空,我只是做了一个有条件的尝试显示。
if (count($ratings_sum) === 0) {
echo author_rating_total();
}