четверг, 31 января 2013 г.

Plugin «Related posts» для Wordpress

Хочу рассказать о интересном плагине для Wordpress — «Improved Related posts». Плагин позволяет добавить в конце публикации перечень постов, которые наиболее похожи по тематике на ваш. Таким образом появляется возможность удержать случайно зашедшего по ссылке, присланной товарищем, пользователя, если он найдет в перечне то, что его сможет заинтересовать.
Знаю, что таких плагинов достаточное количество, чем же отличается именно этот? Не торопитесь ничего скачивать по приведенной ссылке. В конце статьи есть ссылка на локализованный плагин, в котором я улучшил интерфейс настроек.

Основное отличие в том, что он при обработке содержимого ваших постов использует перечень так называемых «stop words».


«Stop words sometimes known as stopwords or Noise Words (in the case of SQL Server[1]), is the name given to words which are filtered out prior to, or after, processing of natural language data (text). » — такое определение данному термину дает Википедия. Другими словами, это слова, которые отбрасываются при обработке текстов. Например, эти слова не учитываются при индексации поисковыми машинами содержимого сайтов…

Автора плагина на устраивал функционал исходного «Related posts», так как он учитывал только URL для сравнения разных постов, а URL блога автора основывались на заголовках постов, которые не в полной мере отражали смысл публикации. Поэтому плагин не давал желаемого эффекта.Плагин, однако, предоставлял возможность использования в постах скрытых слов, которые использовались для поиска, но довольно затруднительно обработать множество ранее написанных публикаций, чтобы добавить в них эти поисковые слова.

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

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

Файл с измененным плагином прилагаю (скачать здесь). Протестирован для 2.3-2.7 версий Wordpress.

Для того, чтобы он отработал, нужно изменить страницу используемой вами темы Wordpress, которая отображает отдельный пост. В конце страницы вставить следующий блок:
<Тег>Кроме того, интересно почитать (или другой ваш текст):</Тег>
<?php related_posts(); ?>


Вместо тега <Тег> — используйте любой другой, который подойдет по стилю вашей теме.

У плагина есть опции, доступ к которым осуществляется с админской страницы. С помощью опций можно определить способ вывода найденных постов на экран.

Update: Я еще доработал плагин. Список изменений:
  • Добавлены русские стоп-слова (как уже было сказано ранее)
  • Полностью перевел на русский язык. Выглядит это так:
    image
  • В опции добавил поля весовых коэффициентов, которые сейчас можно менять, не редактируя код плагина

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

После скачивания переименуйте файл из архива в «related-posts.php» (моя ошибка, — не переименовал файл в архиве. Сейчас уже все исправлено)

Какие плагины аналогичного назначения используете вы?


Пользуюсь YARPP (Yet Another ....), доволен. Можете сравнить чем ваш отличается от этого? (если, конечно, знакомы)
0
rasdol, #
Это судя по всему скрипты — двоюродные братья ;) У них общий предок. Вот здесь есть про отличия между ними: mitcho.com/blog/projects/yet-another-related-posts-plugin/
Судя по описанию, мне related posts нравится больше.
+1
Dimox, #
Я использую тот вариант, который по ссылке под словом «этот». Буду пробовать ваш. Спасибо!
0
rasdol, #
Отличие в добавленных в массив русских стоп-слов. Естественно, можно добавлять еще слова.
Так же советую поиграться с весами слов в зависимости от расположения. Это блок кода:

$w = array(
'title' => 2,
'name' => 2,
'content' => 1,
'cat_name' => 3
);
Можно менять циферки и смотреть на результат. К сожалению, это не настройка, а изменение текста плагина. Может в перспективе добавлю эти поля в настройки…
0
Dimox, #
Знаю про эти настройки, сам когда-то такую же статью писал =) (http://ru-wordpress.org/2007/06/20/note-15.html)

> К сожалению, это не настройка, а изменение текста плагина.

Я понял, мне русских стоп-слов как раз и не хватало.
+1
rasdol, #
Посмотрите, я обновил плагин. Теперь весовые коэффициенты можно менять в настройках. Так же перевел интерфейс на русский.
0
Dimox, #
Отлично, спасибо!
0
rasdol, #
Почитал вашу статью — очень хорошо написано. Видел бы раньше, не стал бы заниматься этим плагином. ;) А так, есть кое-какая польза.
НЛО прилетело и опубликовало эту надпись здесь
0
rasdol, #
Человек-загадка ;) Не знаю, чем он им насолил. Если есть более полный список таких слов — выкладывайте. Добавим в плагин — посмотрим, что иззменится
НЛО прилетело и опубликовало эту надпись здесь
0
rasdol, #
Извините, добавлю, но немного позже. Требуется сделать вот это (ничего, что на английском?):
If automatic creation of a full text index fails. You will have to set it up manually. Don’t worry it’s not hard. Just open your database in phpMySQLadmin and run the following command (cut & paste):

ALTER TABLE `wp_posts` ADD FULLTEXT `post_related` (
`post_name`, `post_content`

)”
Проще всего в PHPMyAdmin. Если индекс post_related уже есть, то его можно грохнуть предварительно. У себя я так и сделал.
НЛО прилетело и опубликовало эту надпись здесь
0
dust, #
Не работает «этот скрипт»

Fatal error: Call to undefined function: get_currentuserinfo() in wp-content/plugins/related_posts2.php on line 19
0
rasdol, #
Это странно. Вот здесь (http://codex.wordpress.org/Function_Reference/wp_get_current_user) написано, что такая функция есть. И нареканий пока не было. А какая у вас версия Wordpress стоит?
0
dust, #
2.7
0
dust, #
И еще, у меня Вордпресс стоит не в корневой директории, возможно в этом проблема?
0
rasdol, #
К сожалению, не могу ответить. Не знаю. Но версия у меня такая же. Плюс тестировал на более ранних.
0
dust, #
выкидываем
0
rasdol, #
логично.
0
alesto, #
Отлично! Спасибо за плагин. Хотя на него ругаются на многих wp форумах, то что он сопоставляет статьи как то не понятно. Мне, например, больше вот это нравится similar posts . В принципе он делает тоже самое, но опций напорядок больше. В частности много фильтров для вывода постов.
0
Balagur, #
Автор, помогите пожалуйста =)
После установки плагина кликаю по ссылке, «скрипт утановки индекса таблицы», в небольшом открывшемся окошке получаю «No input file specified» и все. Хм?
0
Balagur, #
Ссылка уже в админке которая, в настройках плагина )
0
rasdol, #
Я не автор ;) я только учусь.
1) Попробуйте переименовать файл на related_posts.php (это вряд ли поможет)
2)убедитесь, что у вас файл настроек wp-config.php лежит в корневой папке… (при установке скрипт пробует его прочитать (require_once(dirname(__FILE__).'/../../'.'wp-config.php');)

3) Убедитесь, что файлик related_posts.php лежит в папке Plugins, а не в какой нибудь папке типа Plugins/best_plugin/. Он должен лежать в корне папки Plugins/ (Наиболее вероятная ошибка ИМХО)
0
Balagur, #
Ссылка из админки идет на
/wp-content/plugins/related-posts.php?setup

А в вашем случае она должна быть вида
/wp-content/plugins/related_posts2/related_posts2.php?setup

возможно в этом проблема?
0
rasdol, #
1) Попробуйте переименовать файл на related_posts.php — вы это попробовали?
0
rasdol, #
вернее так related-posts.php
описка вышла
0
rasdol, #
скорее всего вы правы, в этом. Моя ошибка — поправил текст поста
0
elsinor, #
мне достаточно Simple Tags
0
pudovkin, #
вставил, однако постоянно вижу «Нет подходящих публикаций»

страницы настроек не появилось
0
rasdol, #
А индекс сформировался? страница настроек есть, она в подменю плагинов «Настройки Related Posts». Проставьте весовые коэффициенты в настройках.
0
pudovkin, #
страницу настроек нашел, спсибо. в общем списке была незаметна она

индекс не сформировался, файла ридми нет.
0
rasdol, #
0
columbo, #
«The used table type doesn't support FULLTEXT indexes»

Комментариев нет:

Отправить комментарий