2017-01-17 3 views
0

Я создал несколько настраиваемых полей для комментариев, чтобы разрешить обзоры на сайте Wordpress, созданные для размещения гостиниц с отзывами пользователей в комментариях. Одним из этих настраиваемых полей является поле «star_rating». Мне нужно найти способ получить общую сумму всех значений, чтобы найти среднее значение «star_rating» для каждого сообщения, которое будет отображаться в результатах поиска и в профиле листинга.Поиск суммы значения поля ACF для комментариев

Я долго пытался найти общую сумму для значений поля star_rating. Я последний раз использовал следующий код, но он не работает, хотя я не понимаю, почему. Любая помощь приветствуется.

$ratings_sum = 0; 
// Arguments for the query 
$args = array(); 
// The comment query 
$comments_query = new WP_Comment_Query; 
$comments = $comments_query->query($args); 
// The comment loop 
if (!empty($comments)) { 
    foreach ($comments as $comment) { 
     $ratings_sum+= $comment->star_rating; 
    } 
} else { 
    // echo 'No comments found.'; 
} 
echo $ratings_sum; 

Большое спасибо заранее.

+0

пользовательское поле 'star_rating', сохраненное в метатеге или комментарии для каждого сообщения? –

+0

@AshPatel 'star_rating' сохраняется в метатете комментариев –

+0

Вы попробовали метод get_field' acf? 'get_field ('star_rating', $ comment)'. Также вы можете добавить эхо в цикл foreach, чтобы узнать, какие значения у вас есть – Grin

ответ

1

Если вы используете ACF настраиваемого поля плагин, попробуйте использовать get_field() функцию. Вы не можете получить доступ к своему настраиваемому полю $comment->star_rating следующим образом.

+0

Большое спасибо - это исправило проблему именно так, как мне было нужно –

0

Try ниже пользовательского запроса для выборки звездный рейтинг:

SELECT SUM(meta_value) FROM wp_commentmeta WHERE comment_id IN (SELECT comment_ID FROM wp_comments WHERE comment_post_ID = '//your post id') and meta_key='star_rating'; 
+0

Привет @AshPatel - я изменил код, как вы предлагали, но $ rating_sum теперь возвращает значение 1 для всех сообщений (вместо того, чтобы оставаться в 0 по-прежнему). Может ли быть еще одна причина, по которой подсчет очков star_ratings не учитывается? Спасибо –

+0

да может быть другая причина..пожалуйста, проверьте, что именно рейтинг для сообщения, в котором запрос возвращается 1. –