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

Версия WP-Recall: 16.8.11

Версия дополнения: 3.1.0

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

Редакции сообщения
12.12.2017 18:05SAZONISCHEПричина: не указано
12.12.2017 18:08SAZONISCHEПричина: не указано
0
Андрей CS
не в сети 31 минута
На сайте с 30.11.-0001
Администратор
Тем 70
Сообщения 8989
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
не в сети 2 часа
На сайте с 20.07.2017
Участник
Тем 11
Сообщения 112
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
не в сети 31 минута
На сайте с 30.11.-0001
Администратор
Тем 70
Сообщения 8989
4
09:00

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

'rating_type' => 'post',

1
SAZONISCHE
не в сети 2 часа
На сайте с 20.07.2017
Участник
Тем 11
Сообщения 112
5
09:09

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

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

0
SAZONISCHE
не в сети 2 часа
На сайте с 20.07.2017
Участник
Тем 11
Сообщения 112
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
не в сети 31 минута
На сайте с 30.11.-0001
Администратор
Тем 70
Сообщения 8989
7
11:02

да, все верно

0
SAZONISCHE
не в сети 2 часа
На сайте с 20.07.2017
Участник
Тем 11
Сообщения 112
8
11:06

item_value и average_rating

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

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

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

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

)

Редакции сообщения
16.12.2017 11:06SAZONISCHEПричина: не указано
16.12.2017 11:11SAZONISCHEПричина: не указано
0
Андрей CS
не в сети 31 минута
На сайте с 30.11.-0001
Администратор
Тем 70
Сообщения 8989
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
не в сети 2 часа
На сайте с 20.07.2017
Участник
Тем 11
Сообщения 112
10
13:06

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

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

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

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

Редакции сообщения
16.12.2017 13:07SAZONISCHEПричина: не указано
16.12.2017 13:07SAZONISCHEПричина: не указано
0
Otshelnik-Fm
На сайте с 27.01.2013
Модератор
Тем 22
Сообщения 9605
11
13:14

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

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

1
Андрей CS
не в сети 31 минута
На сайте с 30.11.-0001
Администратор
Тем 70
Сообщения 8989
12
13:43

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

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

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

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

0
SAZONISCHE
не в сети 2 часа
На сайте с 20.07.2017
Участник
Тем 11
Сообщения 112
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
не в сети 31 минута
На сайте с 30.11.-0001
Администратор
Тем 70
Сообщения 8989
14
09:28

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

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

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

0
SAZONISCHE
не в сети 2 часа
На сайте с 20.07.2017
Участник
Тем 11
Сообщения 112
15
10:01

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

0
Андрей CS
не в сети 31 минута
На сайте с 30.11.-0001
Администратор
Тем 70
Сообщения 8989
16
10:03

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

0
SAZONISCHE
не в сети 2 часа
На сайте с 20.07.2017
Участник
Тем 11
Сообщения 112
17
10:07

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

пасиб

0
SAZONISCHE
не в сети 2 часа
На сайте с 20.07.2017
Участник
Тем 11
Сообщения 112
18
10:10

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

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

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

0
SAZONISCHE
не в сети 2 часа
На сайте с 20.07.2017
Участник
Тем 11
Сообщения 112
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
не в сети 31 минута
На сайте с 30.11.-0001
Администратор
Тем 70
Сообщения 8989
21
12:10

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

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