Домой Каталог: Дополнения WP-Recall Rating System Получения данных рейтинга для разметки
21ответ(ов) в теме
SAZONISCHE
не в сети 1 год
На сайте с 20.07.2017
Участник
Тем 17
Сообщения 211
1
18:05
Версия WP-Recall: 16.8.11
Версия дополнения: 3.1.0

Как получить данные рейтинга одиночной страницы для формирования своей разметки и при етом отключить текущую разметку?
И как проверить на каком типе записи я нахожусь будь то товар или статья

Редакции сообщения
12.12.2017 18:05SAZONISCHEПричина: не указано
12.12.2017 18:08SAZONISCHEПричина: не указано
0
Андрей CS
не в сети 14 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
2
18:20

как то так:

add_action('wp','get_custom_rating_data');
function get_custom_rating_data(){
	global $post;
	
	//если не одиночная страница или тип записи не 'post'
	if(!is_singular() || $post->post_type!='post') return false;
	
	$ratingBox = new Rcl_Rating_Box(array(
		'rating_type' => 'post', //тип записи
		'object_id' => $post->ID, //ИД записи
		'author_object' => $post->post_author //автор записи
	));
	
	//тут инициализируем все данные
	$ratingBox->setup_box();
	
	//максимальный рейтинг
	$ratingBox->vote_max;
	
	//кол-во голосов
	$ratingBox->vote_count;

	//минимальное значение
	$item_value = round( $ratingBox->vote_max / $ratingBox->item_count, 1 );
	
	//среднее значение всех голосов (выводится для звезд в качестве значения)
	$average_rating = $ratingBox->vote_count? round( $ratingBox->total_rating / $ratingBox->vote_count, 1 ): 0;
}

пока отключить вывод текущей разметки нельзя

Редакции сообщения
16.12.2017 10:31Андрей CSПричина: не указано
2
SAZONISCHE
не в сети 1 год
На сайте с 20.07.2017
Участник
Тем 17
Сообщения 211
3
08:16

Вышла ошибочка

Parse error: syntax error, unexpected ''object_id'' (T_CONSTANT_ENCAPSED_STRING), expecting ')' in /home/surf/public_html/wp-content/themes/motiv/functions.php on line 22

Редакции сообщения
16.12.2017 08:17SAZONISCHEПричина: не указано
16.12.2017 08:19SAZONISCHEПричина: не указано
0
Андрей CS
не в сети 14 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
4
09:00

запятую пропустил

'rating_type' => 'post',

1
SAZONISCHE
не в сети 1 год
На сайте с 20.07.2017
Участник
Тем 17
Сообщения 211
5
09:09

$ratingBox = new Rcl_Rating_Box(array(
'rating_type' => 'post' //тип записи
'object_id' => $post->ID //ИД записи
'author_object' => $post->post_author //автор записи
));

Сори, сонный не внимательный

0
SAZONISCHE
не в сети 1 год
На сайте с 20.07.2017
Участник
Тем 17
Сообщения 211
6
10:57

Добавил в существующую json разметку

Спойлер
	global $post;
	$ratingBox = new Rcl_Rating_Box(array(
		'rating_type' => 'post', //тип записи
		'object_id' => $post->ID, //ИД записи
		'author_object' => $post->post_author //автор записи
	));	  
	//тут инициализируем все данные
	$ratingBox->setup_box();
	
	//максимальный рейтинг
	$ratingBox->vote_max;
	
	//кол-во голосов
	$ratingBox->vote_count;

	//минимальное значение
	$item_value = round( $ratingBox->vote_max / $ratingBox->item_count, 1 );
	
	//среднее значение всех голосов (выводится для звезд в качестве значения)
	$average_rating = $ratingBox->vote_count? round( $ratingBox->total_rating / $ratingBox->vote_count, 1 ): 0;

        "aggregateRating" => array(
          "@type" => "AggregateRating",
          "bestRating"  =>  $ratingBox->vote_max,
          "worstRating"  =>  "$item_value",
          "ratingValue"  =>  "$average_rating",
          "ratingCount"  =>  $ratingBox->vote_count	  
        ),		
		


Правильно ли я делаю со значениями item_value и average_rating?

Редакции сообщения
16.12.2017 11:01SAZONISCHEПричина: не указано
0
Андрей CS
не в сети 14 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
7
11:02

да, все верно

0
SAZONISCHE
не в сети 1 год
На сайте с 20.07.2017
Участник
Тем 17
Сообщения 211
8
11:06

item_value и average_rating

Отдало неверные

Вы не можете просматривать опубликованные ссылки

, чувствую себя неудачником (

Вы не можете просматривать опубликованные ссылки

)

Редакции сообщения
16.12.2017 11:06SAZONISCHEПричина: не указано
16.12.2017 11:11SAZONISCHEПричина: не указано
0
Андрей CS
не в сети 14 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
9
11:28

обнови плагин до версии 16.9.1 и используй код:

add_action('wp','get_custom_rating_data');
function get_custom_rating_data(){
    global $post;

    //если не одиночная страница или тип записи не 'post'
    if(!is_singular() || $post->post_type!='post') return false;

    $ratingBox = new Rcl_Rating_Box(array(
        'rating_type' => 'post', //тип записи
        'object_id' => $post->ID, //ИД записи
        'object_author' => $post->post_author //автор записи
    ));

    //тут инициализируем все данные
    $ratingBox->setup_box();

    //максимальный рейтинг
    $ratingBox->vote_max;

    //кол-во голосов
    $ratingBox->vote_count;

    //минимальное значение
    $item_value = round( $ratingBox->vote_max / $ratingBox->item_count, 1 );

    //среднее значение всех голосов (выводится для звезд в качестве значения)
    $average_rating = $ratingBox->vote_count? round( $ratingBox->total_rating / $ratingBox->vote_count, 1 ): 0;

}

была исправлена ошибка

2
SAZONISCHE
не в сети 1 год
На сайте с 20.07.2017
Участник
Тем 17
Сообщения 211
10
13:06

Спасибо, все работает

Еше мелкие вопросы:
1. При отключенной разметке продукта не могу получить его рейтинг со страницы (

Вы не можете просматривать опубликованные ссылки

)
2. Как отличить страницу продукта от статьи, есть ли какие условия или проверки?

Редакции сообщения
16.12.2017 13:07SAZONISCHEПричина: не указано
16.12.2017 13:07SAZONISCHEПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 1 неделя
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
11
13:14

SAZONISCHE сказал(а)
Как отличить страницу продукта от статьи, есть ли какие условия или проверки?

вопрос не касается рейтинга. Создавайте новую тему на форуме и разверните его подробней.

1
Андрей CS
не в сети 14 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
12
13:43

При отключенной разметке продукта не могу получить его рейтинг со страницы (пример)

не понял этой проблемы, значения рейтинга не выводятся?

SAZONISCHE сказал(а)
Как отличить страницу продукта от статьи, есть ли какие условия или проверки?

проверяйте по типу записи, я же в коде привел пример проверки

0
SAZONISCHE
не в сети 1 год
На сайте с 20.07.2017
Участник
Тем 17
Сообщения 211
13
06:08

не, я решил сумарную отценку вывести и она не отдалась продукту как и количество голосов
я прост увидел ток комент и пост тип рейтинга ('rating_type' => 'post')
пример

<a class="post-ratings-intro"><span><i class="fa fa-star"></i><?php 
    global $post; 
    $ratingBox = new Rcl_Rating_Box(array( 'rating_type' => 'post', 'object_id' => $post->ID, 'object_author' => $post->post_author)); 
    $ratingBox->setup_box(); 
    echo $average_rating = $ratingBox->vote_count? round( $ratingBox->total_rating / $ratingBox->vote_count, 1 ): 0; 
?></span></a>

Редакции сообщения
17.12.2017 06:08SAZONISCHEПричина: не указано
0
Андрей CS
не в сети 14 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
14
09:28

я ничего не понял, вы же написали

SAZONISCHE сказал(а)
Спасибо, все работает

так работает или нет?
если работает, то как может работать когда вы сообщаете, что суммарная оценка не выводится?

0
SAZONISCHE
не в сети 1 год
На сайте с 20.07.2017
Участник
Тем 17
Сообщения 211
15
10:01

не работает именно на страницах продукта (товара)

0
Андрей CS
не в сети 14 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
16
10:03

тип записи надо указывать верно, у вас post, а нужен products

0
SAZONISCHE
не в сети 1 год
На сайте с 20.07.2017
Участник
Тем 17
Сообщения 211
17
10:07

Андрей CS сказал(а)
products

пасиб

0
SAZONISCHE
не в сети 1 год
На сайте с 20.07.2017
Участник
Тем 17
Сообщения 211
18
10:10

в php не шарю особо, так можно или нет? 'rating_type' => 'post|products'

Редакции сообщения
17.12.2017 10:11SAZONISCHEПричина: не указано
17.12.2017 10:12SAZONISCHEПричина: не указано
0
Андрей CS
не в сети 14 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
19
10:23

нельзя и такой необходимости вообще нет, если надо получать тип записи динамически, то надо получать через $post->post_type

0
SAZONISCHE
не в сети 1 год
На сайте с 20.07.2017
Участник
Тем 17
Сообщения 211
20
11:47

Спасибо, в итоге получилось такое извращение, не знаю куда проще

Спойлер
				<?php
				global $post;
				if($post->post_type==='post') {
					$ratingBoxPost = new Rcl_Rating_Box(array('rating_type' => 'post', 'object_id' => $post->ID, 'object_author' => $post->post_author)); $ratingBoxPost->setup_box(); $average_rating_post = $ratingBoxPost->vote_count? round( $ratingBoxPost->total_rating / $ratingBoxPost->vote_count, 1 ): 0; echo '<a class="post-ratings-intro"><span><i class="fa fa-star"></i>' .  $average_rating_post  . '</span></a>';
				} elseif($post->post_type==='products') {
					$ratingBoxProduct = new Rcl_Rating_Box(array('rating_type' => 'products', 'object_id' => $post->ID, 'object_author' => $post->post_author)); $ratingBoxProduct->setup_box(); $average_rating_product = $ratingBoxProduct->vote_count? round( $ratingBoxProduct->total_rating / $ratingBoxProduct->vote_count, 1 ): 0; echo '<a class="post-ratings-intro"><span><i class="fa fa-star"></i>' .  $average_rating_product  . '</span></a>';
				}
				?>	

0
Андрей CS
не в сети 14 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
21
12:10

можно сделать и красивее, но если работает, то ладно

1
Вы не имеете права на публикацию сообщений в этой теме