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

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

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

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

'rating_type' => 'post',

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

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

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

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

да, все верно

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

item_value и average_rating

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

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

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

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

)

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

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

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

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

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

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

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

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

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

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

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

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

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

0
SAZONISCHE
не в сети 15 часов
На сайте с 20.07.2017
Участник
Тем 16
Сообщения 178
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
не в сети 15 минут
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 11577
14
09:28

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

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

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

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

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

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

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

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

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

пасиб

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

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

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

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

0
SAZONISCHE
не в сети 15 часов
На сайте с 20.07.2017
Участник
Тем 16
Сообщения 178
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
не в сети 15 минут
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 11577
21
12:10

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

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