Создаем рейтинг автора — заключительная часть цикла как сделать социальную сеть на wordpress
Отборная информация, которая вставляет!

Создаем рейтинг автора — заключительная часть цикла как сделать социальную сеть на wordpress

Вот мы и подобрались к заключительной части цикла статей. Как и раньше все, что будет описано в статье ниже — вы можете использовать отдельно от других приемов описанных в этом цикле.

В данной статье будет описаны приемы создания расширенного рейтинга автора.

Итак, рейтинг автора. На основе чего его можно сделать? Изначально я делал просто — использовал плагин wp-postrating, а потом создавал функцию, которая просто подсчитывает кол-во баллов поставленных пользователями для статьи и суммирует их. Т.е. к примеру, автор написал 10 статей, каждая статья получила 5 баллов рейтинга — в итоге 5*10 = 50 рейтинг автора.

Но с тех пор прошло некоторое кол-во времени и появились более удобные плагины, которые отвечают за рейтинги.

Имя плагину — . Русификацию можно скачать . Что может делать плагин: добавлять определенное кол-во баллов за публикацию статей, за комментирование, за ежедневный логин. Само кол-во балов можно устанавливать любое. Кроме того доступны некоторые интересные модули, например, модуль ранги.

Также, к примеру, можете скачать который скрывает часть контента для пользователей, которые не достигли определенного уровня рейтинга. Т.е. выходит что-то вроде как хайд.

Но это ещё не все. Думаю, что такой вид рейтинга удобен, но не на все 100%, потому что выходит, что пользователь может получить только определенное количество баллов. Т.е опубликовал статью — держи 10 баллов, но ведь статьи бывают разные. Некоторые полезные, а некоторые — почитал и закрыл. Конечно было бы хорошо, чтобы пользователи повышали свой рейтинг от того насколько полезная статья.

Теперь перейдем к рейтингу статей.

Наверное самый лучший плагин для этих целей . Как и все остальные плагины Лестера, он хорошо сделан и хорошо .

Если не знаете инглиш, то расскажу вкратце. Устанавливаете плагин, идете в настройки устанавливаете вид рейтинга и если нужно вручную, то вставляете код в тело поста

<?php if(function_exists('the_ratings')) { the_ratings(); } ?>  


Вот и все.

А теперь бонус от меня.

Рассказываю как объединить возможности обеих плагинов. Т.е. будет система рейтинга от куба, но при этом каждый автор будет получать рейтинг также и за рейтинг его статей.

В плагине wp-postratings добавьте в файл wp-postratings.php примерно после
616 строки, в ней

    // Log Ratings No Matter What
    rate_log = $wpdb->query("INSERT INTO $wpdb->ratings VALUES ...

добавьте этот код

  $post = get_post($post_id);
    $author_id = $post->post_author;
    $sql = "INSERT INTO `{$wpdb->prefix}cubepoints` VALUES (0,
    $author_id, 'rating_post', $post_id, ".$ratings_value[$rate-1].",
    ".current_time('timestamp').")";
    $wpdb->query($sql);
    $cpoints = get_user_meta($author_id, 'cpoints', true);
    $cpoints += $ratings_value[$rate-1];
    $a = update_user_meta($author_id, 'cpoints', $cpoints);

И в плагине cubepoints в файл cp_admin_logs.php примерно после 98 строки
(после break;)

добавь этот код

  case "rating_post":
    $source = get_post($result->source);
    if($source->ID!=''){
    $source= '<a href="' . $source->guid . '"
    title="'.$source->post_title.'">Post #'.$source->ID.'</a>' ;
    }
    else {$source= 'Post #'.$result->source;}
    $type=__('Изменение рейтинга поста','cp');
    break;

Вот и все. На этой ноте заканчиваю цикл статей на тему создания социальной сети на базе wordpress. Но не заканчиваю писать на эту тему. К примеру, в ближайшее время будет выложен плагин, с помощью которого можно делать платные социальные сети, подробней об этом — чуть позже.

Подписывайтесь на обновления, чтобы не пропустить вкусняшки.

UPD.

на новых версиях код поменялся, теперь нужно делать так. В файл wp-postratings.php нужно вставлять код

    $post = get_post($post_id);
    $author_id = $post->post_author;
    $sql = "INSERT INTO `{$wpdb->prefix}cp` VALUES (0, $author_id, 'rating_post', $post_id, ".$ratings_value[$rate-1].", ".current_time('timestamp').")";
    $wpdb->query($sql);
    $cpoints = get_user_meta($author_id, 'cpoints', true);
    $cpoints += $ratings_value[$rate-1];
    $a = update_user_meta($author_id, 'cpoints', $cpoints);

и в cp_hooks

/** Post rating logs hook */
add_action('cp_logs_description','rating_post_log', 10, 4);
function rating_post_log($type,$uid,$points,$data){
	if($type!='rating_post') { return; }
	$post = get_post($data);
	echo __('Изменен рейтинг', 'cp') . ' "<a href="'.get_permalink( $post ).'">' . $post->post_title . '</a>"';
}
Вы дизайнер, программист, копирайтер? Вы мастер своего дела? Вы достойны хорошей зарплаты и работы в стабильной компании. Посетите портал вакансии в IT — лучшие вакансии от лучших компаний.


 

Похожие статьи:



49 комментариев к “Создаем рейтинг автора — заключительная часть цикла как сделать социальную сеть на wordpress”


9643e5d7

  1. Roma:

    Здраствуйте, ребята кто знает как связать эти два плагина (чтоб рейтинг постов тоже влиял на рейтинг автора). Инструкция выше предназначена для cubepoints 2.1.3, а как быть если версия cubepoints 3…?

  2. stas:

    Приветствую,

    ETNO
    4 Май 2013 в 12:26

    не совсем. Я недавно смотрел новые версии плагинов и написал решение для них, скоро опубликую, пока проверяю

    А где можно почитать об этом решении?

  3. Андрей:

    Скажите, пожалуйста, а как собственно вставить суммарный рейтинг (cubepoint + wp-postrating) в колонку автора, который скажем выводится под каждой записью.

  4. Андрей:

    Пытаюсь вывести реейтинг АВТОРА ЗАПИСИ следующим кодом: if(function_exists(‘cp_displayPoints’)){cp_displayPoints($curauth->ID);

    Но выводит рейтинг того, кто залогинен, а не рейтинг автора записи. Подскажите, пожалуйста, какой код нужно вставлять для вывода именно рейтинга АВТОРА ЗАПИСИ.

    • ETNO:

      этот код будет работать только на странице author.php причем выше нужно добавить

      <?php
      global $wp_query;
      $curauth = $wp_query->get_queried_object();
      ?>

      Чтобы вывести на странице поста рейтинг автора статьи попробуйте так

      <?php $author_id = get_the_author_meta('ID'); if(function_exists('cp_displayPoints')){cp_displayPoints($author_id);}?>
      
  5. Андрей:

    Спасибо огромное! Получилось, ура :)