20июня
2007

Как вывести список наиболее релевантных записей?

Есть такой замечательный популярный плагин для WordPress - Related Posts (за авторством Alexander Malov и Mike Lu), который предназначен для отображения списка релевантных постов, подходящих по теме для выбранной записи. Как правило, он (список) располагается сразу же после текущей заметки, дабы удержать посетителя на сайте предложением прочесть другие статьи на обозначенную тематику.

Да, это подходящий плагин. Да, он решает свою задачу. Но! Он решает эту задачу, по моей приблизительной оценке, не более, чем на 30%. И в этом его существенный минус.

Почему такая низкая оценка?

Дело в том, что оригинальный плагин спрограммирован таким образом, что для определения релевантности записей во внимание берутся только заголовки статей (если быть точнее - ключевые слова в заголовках). В таком случае нет ничего удивительного, что он отражает не достаточно хорошие результаты. Ведь в названии статьи кроется лишь малая доля информации (более того, встречаются индивидуумы, которые публикуют "притягивающие" заголовки постов, но не имеющие ничего общего с изложенными под ним материалами).

Хочу Вас обрадовать - нашелся разработчик, который представил публике усовершенствованный плагин Related Posts (за основу был взят оригинал). Протестировав его, я пришел к выводу, что эффективность (релевантность списка) повысилась до порядка 70%, что весьма не плохо.

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

Причем в данном релизе предусмотрена настройка веса ключевых слов в указанных элементах. Параметры находятся в районе 65-70 строк файла related-posts.php:

  1. $w = array(
  2.                'title' => 2,
  3.                'name' => 2,
  4.                'content' => 1,
  5.                'cat_name' => 3
  6.               );

Примечание: с параметром 'name' => 2, имеет смысл экспериментировать, если в ссылках Ваших постов имеются ключевые слова, причем на английском языке. В обратном случае он особого значения не имеет.

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

Установка плагина

  1. Сохраняем усовершенствованный плагин Related Posts на свой ПК.
  2. Переименовываем файл в related-posts.php.
  3. Копируем его в папку с плагинами (...wp-content\plugins\).
  4. Активируем в админ-панели.
  5. Данный плагин требует добавления дополнительной таблицы в базу данных MySQL. Сделать это можно двумя способами:
    • После активации плагина зайти во вкладку Плагины -> Related Posts Options и кликнуть внизу на ссылку "this script". Вполне вероятно, что скрипт выдаст Вам ошибку: "Sorry, you must be at least a level 8 user." Чтобы избежать ее, можно закомментировать 20-ю и 21-ю строки плагина:
      1. //if ($user_level < 8)
      2.             //die ("Sorry, you must be at least a level 8 user."); // Make sure that user has sufficient priveleges
    • Ежели поступать по-другому, то нужно импортировать в базу данных Вашего wp-сайта следующую таблицу:
      1. ALTER TABLE `wp_posts` ADD FULLTEXT `post_related` (
      2.     `post_name` ,
      3.     `post_content`
      4. )

Использование плагина

Для вывода списка релевантных записей, используется следующий код:

  1. <?php related_posts(); ?>

К сожалению, мне никак не удалось заставить работать параметры, указываемые прямо в этой функции. Но это дело легко поправляется через страницу настроек плагина (Плагины -> Related Posts Options).

Вот что означают параметры:

  • How many related posts would you like to show? - сколько постов отображать в списке.
  • Before / After (Post Title) - html-код до и после заголовка поста.
  • Show excerpt? - показывать ли анонс поста.
  • Excerpt length (No. of words) - длина анонса (количество слов).
  • Before / After (Excerpt) - html-код до и после анонса поста.
  • Show password protected posts? - отображать ли защищенные паролем посты.

Хотелось бы в комментариях "услышать" мнение и опыт читателей по следующим вопросам:

  1. Какие плагины релевантности постов используете Вы и насколько они эффективны?
  2. Если Вы уже экспериментировали с данной версией плагина и "игрались" с параметрами веса ключевых слов, какое их сочетание стало для Вас наиболее результативным?

Эта запись опубликована в Среда, 20 июня 2007 г. в рубрике Плагины для WordPress.

автор: Dimox