Popularity Contest - старый, удобный и давно используемый плагин для WordPress, позволяющий вести рейтинг записей блога исходя из различных параметров (таких как число просмотров, комментариев, пингов, переходов с поисковиков и т.д.).
К сожалению последня его версия 2.0 beta 2 была выпущена год назад и содержит несколько ошибок, не позволяющих использовать все функции плагина. Ниже даются исправления для двух таких ошибок.
Первая, широко известная, - при попытке обновить число комментариев, пингов и трекбэков выдается такое сообщение об ошибке:
Catchable fatal error: Object of class stdClass could not be converted to string in /path/to/popularity-contest.php on line 539
Для исправления необходимо заменить
$this->populate_post_data($post_id);
на
$this->populate_post_data($post_id->ID);
в строке 772 (функция recount_feedback(), если вы используете другую ревизию этого файла).
Вторая ошибка заключается в том, что при использовании Ajax API обновления статистики (включено по умолчанию), не ведется подсчет переходов с поисковых машин. Для исправления необходимо заменить
else if (($api && in_array($type, array('single', 'page'))) || is_single() || is_singular() || is_page()) {
на
else if (($api && in_array($type, array('single', 'page', 'searcher'))) || is_single() || is_singular() || is_page()) {
в строке 660 (функция record_view()).
К учету переходов с поисковых машин относится и неудобство, связанное с ограничением в 50 символов на длину параметра настроек этого плагина, записываемых в базу данных, т.е. ваш список поисковых машин, записанных в строку через пробел, не может превышать эти 50 символов (лишнее будет урезано). Поэтому могу порекомендовать использовать такой список: [www.google.com www.google.ru yandex.ru go.mail.ru].
Уведомление: Еще фикс к Popularity Contest