Данные рейтинга хранятся в таблице wp_rcl_rating_values.
Вам нужно составить кастомный sql запрос - выбрать из таблицы wp_rcl_rating_values из колонки rating_type значения post и идентификатор object_id - это id записи. Ну а дальше согласно структуре бд вордпресс выбрать нужные категории у этих постов
Задания публикуются тут
Ставьте любую цену - кто свободен и заинтересуется - откликнется на задание и предложит свою цену, если ваша ему покажется недостаточной.
Конечно же суть задания должна быть максимально точно отображена в подробном т.з. - чтобы возможные исполнители не тратили время на переписку, уточняя детали. Многие на это не любят тратить время.
Ну а если не откликнутся - стоит поискать исполнителя на других площадках где работают фрилансеры
Александр сказал(а)
Сделал запрос, получил в переменную суммарное значение рейтинга для определенной рубрики (категории), как теперь прикрутить это значение к "Звездам" ?)
Одного общего рейтинга недостаточно, но вот пример:
<?php $total_rating = 52; //Суммарный рейтинг $vote_count = 20; // Сколько человек проголосовало $item_count = 5; // Кол-во звезд $vote_max = 5; // Макс. кол-во рейтинга за все звезды $average_rating = round( $total_rating / $vote_count, 1 ); // Средний рейтинг $item_value = round( $vote_max / $item_count, 1 ); // Значение рейтинга за 1 звезду $rating_value = round( $average_rating / $item_value, 1 ); // Значение рейтинга (вроде то же что и $average_rating) $props = array( 'object_id' => 0, 'rating_type' => 'my_rating', 'user_vote' => true, 'item_count' => $item_count, 'vote_max' => $vote_max, 'total_rating' => $total_rating, 'vote_count' => $vote_count, 'average_rating' => $average_rating, 'item_value' => $item_value, 'rating_value' => $rating_value ); $rat = new Rcl_Rating_Box($props); echo '<div class="rcl-rating-box rating-type-post box-stars">'; echo '<div class="rating-wrapper">'; echo $rat->get_box_star(); echo '</div>'; echo '</div>'; ?>
т.е. вам надо заполнить:
$total_rating //Это сумма рейтинга всех постов
$vote_count // Сколько человек проголосовало, т.е. вам надо знать сколько человек голосовало за каждый пост в категории и все сложить
$item_count = 5; // Кол-во звезд
$vote_max = 5; // Макс. кол-во рейтинга за все звезды
Может кому пригодится, вот так сделал запрос, ввиду полного отсутствия опыта в PHP, может опытные поправят (оптимизируют) если что не так), но вроде все работает...
<?php $catID = get_query_var('cat'); ?> <?php $connection = new mysqli("localhost","root","",'ozwp'); $query = "SELECT SUM(rating_value) AS 'ratingsum' FROM wp_rcl_rating_values INNER JOIN wp_term_relationships ON wp_rcl_rating_values.object_id=wp_term_relationships.object_id AND wp_rcl_rating_values.rating_value>='0' WHERE wp_term_relationships.term_taxonomy_id='$catID'"; $result = $connection->query($query); while($row = mysqli_fetch_array($result)) { $ratingsumcat=$row['ratingsum']; }; $connection = new mysqli("localhost","root","",'ozwp'); $query = "SELECT COUNT(rating_value) AS 'ratingusers' FROM wp_rcl_rating_values INNER JOIN wp_term_relationships ON wp_rcl_rating_values.object_id=wp_term_relationships.object_id AND wp_rcl_rating_values.rating_value>='0' WHERE wp_term_relationships.term_taxonomy_id='$catID'"; $result = $connection->query($query); while($row = mysqli_fetch_array($result)) { $ratingusers=$row['ratingusers']; }; ?>
1) Сумма всех положительных оценок
2) Количество проголосовавших
Все применительно к открытой категории.
wp_term_relationships.term_taxonomy_id не всегда равно id категории
WHERE wp_term_relationships.term_taxonomy_id='$catID'";
заменить на
WHERE wp_term_relationships.term_taxonomy_id IN(SELECT wp_term_taxonomy.term_taxonomy_id FROM wp_term_taxonomy WHERE wp_term_taxonomy.term_id = '$catID')