如何创建列出所有类别及其评级的页面

时间:2017-02-15 作者:Neil

我想创建一个“Score Board“对于当前总评分的所有类别。我使用WP-PostRatings plugin 给每个帖子打分。

我想创建一个页面,显示其平均评级的所有类别。每个类别都会像其下的帖子一样获得或失去评级。记分板页面将对赢家和输家进行排序。

在时间线图中显示评分的变化会很好,但如果工作量太大,可以等待。

编辑:感谢您的帮助!

到目前为止,我尝试了所有可以找到的插件。我不是一个狂热的程序员。如果你能推荐任何插件或黑客,这将是一个很大的帮助。我想得到SUM 所有评级中。

1 个回复
SO网友:Johansson

将整个函数复制到要获得平均评分的页面:

<?php
// Lets get the id of every existing category
$output_categories = array();
$categories = get_categories($args);
//We loop through every category to calculate the average rating score of it\'s posts
foreach($categories as $category) {
    $post_ids = get_posts(array(
        \'numberposts\'   => -1, // get all posts.
        \'tax_query\'     => array(
            array(
                \'taxonomy\'  => \'category\',
                \'field\'     => \'id\',
                \'terms\'     => $category->cat_ID,
            ),
        ),
        \'fields\'        => \'ids\', // Only get post IDs
    ));
    // Time to calculate the average rating score of each category
    if ( $category->count == 0 ){
        echo \'Average rating in <a href="\'.get_category_link($category->cat_ID).\'"> \'.$category->cat_name.\'</a> is : No rating \';
    } else {
        $sum = 0;
        foreach ($post_ids as $postID) {
            $sum += the_ratings($postID);
        }
        $average_in_cat = (intval($sum / $category->count)*100)/100;
        // Alright, we have the average rating score for this category. Let\'s show it
        echo \'Average rating in <a href="\'.get_category_link($category->cat_ID).\'"> \'.$category->cat_name.\'</a> is : \'.$average_in_cat;
    }
}
?>
关于此函数,我必须提及的几点是:

我不知道the_ratings() 作用此函数应返回一个整数/浮点数,以便代码正常工作。因为我没有插件,所以我无法验证它的输出。如果它不是一个数字,那么您必须将其转换为整数/浮点,或者挖掘插件的代码并找到一个返回数字的函数