函数根据作者返回元值。
<?php
function ac_author_score() {
$userID = get_the_author_meta( \'ID\' );
$query = array (
\'author\' => $userID,
\'posts_per_page\' => -1
);
$queryObject = new WP_Query($query);
while( $queryObject->have_posts() ) : $queryObject->the_post();
global $post;
$postID = $post->ID;
$score = $score + intval( get_post_meta( \'ratings_score\', $postID, true ) );
endwhile;
wp_reset_query();
if ( $score > 0 )
$score = \'+\' . $score;
return $score;
}
?>
所以它返回$分数,但我无法让它输出任何带有echo等的内容。
如何实际打印/回显返回的值?
SO网友:andy
获得单个作者评分的正确方法。
这是给作者的。php页面。如果要在站点的其他位置显示它,例如显示当前登录用户的赞数,请使用get\\u current\\u user\\u id(“id”);代替get\\u the\\u author\\u meta。
<?php
function author_rating_total() {
$user_id = get_the_author_meta( \'ID\' );
$query = array (
\'author\' => $user_id,
\'suppress_filters\' => \'true\',
\'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[\'ratings_score\'][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();
}
?>
<?php
echo author_rating_total();
?>