如何计算特定作者的帖子元值(数字)的平均值

时间:2015-03-13 作者:Harman Preet

我有一个网站,目前由多个作者组成,目前我的网站有一个模块来计算总浏览量,我将此值存储在post meta中作为cv_posts_views.

我想在作者页面上实现一个功能。每当有人访问作者页面时,它都会显示该作者每篇文章的平均浏览量。

e、 g。

Author name : xyz
total posts : 100
total likes of all posts : 20000
average likes per post : ???
我不知道如何循环浏览所有帖子,并从帖子元表中获取值,然后将它们相加,然后根据总帖子计算平均值。我怎样才能做到这一点。

1 个回复
SO网友:Boris Kuzmanov

您可以使用count\\u user\\u posts()函数获取特定作者的帖子总数。通过特定作者循环浏览所有帖子,您可以获得每个帖子的赞数,并将其存储/添加到一个变量中。这里有一个函数。

<?php 
    function avg_num_of_likes() {
        $author = get_user_by( \'id\', get_query_var( \'author\' ) );
        $author_id = $author->ID;
        $number_of_posts = count_user_posts( $author_id );
        $sumLikes = 0;
        $avgLikes = 0;

        $args = array(
            \'author\'    => $author_id
        );
        $author_query = new WP_Query( $args );

        if( $author_query->have_posts() ) : while( $author_query->have_posts() ) : $author_query->the_post();
            $sumLikes += get_post_meta( get_the_ID(), \'cv_posts_view\', true );
        endwhile; endif;
        wp_reset_postdata();

        $avgLikes = $number_of_posts / $sumLikes;

        return $avgLikes;
    }
    ?>
在希望作者页面上显示平均喜欢数的位置调用avg\\u num\\u of\\u likes()。

@Harman Preet您可以使用一个附加函数来实现这一点。和更改$avgLikes = $number_of_posts / $sumLikes;$avgLikes = custom_number_format( $number_of_posts / $sumLikes );.

function custom_number_format($n, $precision = 1) {
    if($n < 1000 ) {
        $n_format = number_format($n);
    }
    else if ($n < 1000000) {
        // Anything less than a million
        $n_format = number_format($n / 1000, $precision) . \'K\';
    } else if ($n < 1000000000) {
        // Anything less than a billion
        $n_format = number_format($n / 1000000, $precision) . \'M\';
    } else {
        // At least a billion
        $n_format = number_format($n / 1000000000, $precision) . \'B\';
    }

    return $n_format;
}
参考号:https://stackoverflow.com/questions/4371059/shorten-long-numbers-to-k-m-b

结束

相关推荐

Add code only for blog posts

我正在尝试只在博客帖子中运行一个代码,而另一个代码只在单个页面中运行。但我甚至无法生成一个包含wordpress条件标记的php if语句。在页脚中。php,我尝试了一些简单的函数if( is_singular() ) { // should show work in singular pages, bot is not working } 在下面的代码中,将在首页上执行code4 getif ( is_front_page() && is_home()