Как создать страницу, в которой перечислены все категории с ее рейтингами

Я хочу создать « Оценочный совет » для всех категорий с его текущими итоговыми рейтингами. Я использую плагин WP-PostRatings для оценки всех сообщений.

Я хотел бы создать страницу, которая показывает все категории со средними рейтингами. Каждая категория будет получать или проигрывать рейтинги, поскольку посты под ней делают. Страница Scoreboard сортирует победителей и проигравших.

Было бы неплохо показать изменение рейтингов на графике временной шкалы, но это может подождать, если это слишком много работы.

Изменить: оцените свою помощь!

До сих пор я пробовал все доступные плагины, которые я мог найти. Я не жадный кодер. Если бы вы могли предложить любые плагины или взломы, это было бы большой помощью. Я хотел бы получить SUM всех рейтингов.

Solutions Collecting From Web of "Как создать страницу, в которой перечислены все категории с ее рейтингами"

Скопируйте всю функцию на страницу, на которой вы хотите получить средние оценки:

<?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; } } ?> 

Есть несколько вещей, которые я должен упомянуть об этой функции, которые:

  1. Я не знаю, что является результатом функции the_ratings() . Эта функция должна возвращать целое число / float для работы кода. Поскольку у меня не было плагина, я не смог проверить его вывод. Если это что-то другое, кроме числа, то вам нужно преобразовать его в integer / float или выкопать код плагина и найти функцию, которая возвращает число.
  2. Список не отсортирован. Чтобы отсортировать его, вы можете использовать либо JavaScript, либо хранить вывод внутри массива, и использовать PHP для его сортировки.
  3. Я тестировал это на своем собственном веб-сайте с +5000 сообщений, распределенных по 500 категориям, и для завершения кода потребовалось около 2 секунд. Поэтому в вашем случае это займет не больше секунды.

Что-нибудь еще, просто дай мне знать.