Данные рейтинга хранятся в таблице 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')