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

Версия WP-Recall: 16.8.11

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

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

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

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

'rating_type' => 'post',

1
SAZONISCHE
не в сети 2 часа
На сайте с 20.07.2017
Участник
Тем 14
Сообщения 150
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
Участник
Тем 14
Сообщения 150
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
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 9808
7
11:02

да, все верно

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

item_value и average_rating

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

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

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

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

)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

пасиб

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

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

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

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

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

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

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