Какой плагин может вывести средний рейтинг постов / страниц относящихся к главной странице?
Привет,
У меня есть посты, в каждом из них пользователь ставит свой рейтинг для обзора продукта. В посте пользователь выбирает к какой странице относится этот обзор.
Мне нужно вывести на этой странице средний рейтинг всех оценок.
сайт на elementor.
Можете подсказать, есть ли плагин какой, где можно подставить значения, чтоб он вывел средний рейтинг шкалу или звезды на странице с помощью виджета или шорткода?
Дополнительно:
Ответы:
Написать sql запрос на основе данных рейтингов из вашей бд.
Потому как "ставит свой рейтинг для обзора продукта" - это нам ни о чем не говорит. Но так как у вас уже ставят каким-то образом - значит данные хранятся. Теперь их нужно выбрать и усреднить. Задача для фрилансера. Он разберется как у вас хранятся данные и выберет среднее
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Плагин “из коробки” может существовать, но задача сильно зависит от того, где именно хранится рейтинг: в post meta, comment meta, отдельной таблице плагина отзывов или в WooCommerce reviews. Поэтому универсальный ответ — сначала выяснить источник данных, потом вывести среднее через shortcode или блок.
Если у каждой записи-обзора есть meta-поле
ratingи meta-полеrelated_page_id, то средний рейтинг для страницы можно получить так:function my_page_average_rating($page_id) { $q = new WP_Query([ 'post_type' => 'post', 'posts_per_page' => -1, 'fields' => 'ids', 'meta_query' => [ [ 'key' => 'related_page_id', 'value' => $page_id, ], ], ]); $sum = 0; $count = 0; foreach ($q->posts as $post_id) { $rating = (float) get_post_meta($post_id, 'rating', true); if ($rating > 0) { $sum += $rating; $count++; } } return $count ? round($sum / $count, 1) : 0; }
Для большого количества обзоров такой расчёт надо кэшировать в transient или сохранять агрегат при обновлении записи, иначе каждая главная страница будет делать тяжёлый запрос.
Если рейтинг идёт от конкретного плагина, посмотрите его таблицы и хуки. Часто проще не искать новый плагин, а сделать маленький shortcode:
[average_rating page_id="123"]. Так Вы контролируете, какие материалы участвуют в расчёте и как рейтинг выводится в schema.Для SEO-разметки не подставляйте агрегированный рейтинг в
AggregateRating, если это не реальные оценки пользователей по конкретному объекту. Поисковые системы плохо относятся к нарисованным рейтингам. Выводите среднее значение на странице как пользовательский показатель, а schema добавляйте только если источник рейтинга соответствует правилам разметки.