Jump to content

WP-PostRatings изменить значение с 0 до 1(5)


Recommended Posts

Всем привет.

Попытаюсь объяснить своими словами, знающий гуру вордпресса должен понять.

Плагин WP-PostRatings для всех новых статей на сайте выводит рейтинг 0/5.

 

Как сделать так, чтобы при публикации каждая статья уже имела рейтинг? (любой, хоть 1/5, хоть 5/5) (чтобы не проставлять руками оценку, ибо статей много и отнимает много времени).

 

По любому там в коде редактора плагина надо дописать просто "+1" и все, но я не спец в этом. Спасибо за помощь!

Link to post
Share on other sites
  • VIP

Привет. Накидал по бырому, потестируйте. Вставляется в functions.php

/**
* Функция автоматического добавления рейтинга новым записям
* 
* @param ind $post_id уникальный идентификатор поста
*/
function save_postratings_for_post( $post_id ) {
	// Если это ревизия - ничего не делаем
	if ( wp_is_post_revision( $post_id ) )
		return;
	
	// Смотрим, есть ли данные о проголосовавших юзерах
	  // Функция срабатывает при обновлении записи, потому исключаем момент с подменой данных
	$ratings_users = (int)get_post_meta($post_id, 'ratings_users', true);
	if($ratings_users > 0)
		return;
		
	// Узнаем, какой максимальный рейтинг доступен (указывается в настройках плагина)
	  // А также проверим, если такой опции нет, то плагин отсутствует и смысла добавлять данные нет
	$postratings_max = (int)get_option('postratings_max');

	if(!$postratings_max)
		return;
		
	// Добавляем рандомные данные
	  // В функцию random_int первым параметром передаётся минимальный возможный рейтинг, вторым - максимальный
	$score_and_average = random_int(1, $postratings_max);
	  // Общий рейтинг (ratings_average = ratings_score / ratings_users)
	update_post_meta($post_id, 'ratings_average', $score_and_average);
	  // Сумма рейтинга ( ratings_score_user_1 + ratings_score_user_2 + .... + ratings_score_user_n )
	update_post_meta($post_id, 'ratings_score', $score_and_average);
	  // Количество проголосовавших людей
	update_post_meta($post_id, 'ratings_users', 1);
}
add_action( 'edit_post', 'save_postratings_for_post' );
Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...