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

Есть вопрос? Задай его профессиональным веб-мастерам, SEO и другим специалистам!

  • 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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...