Archive for Август, 2009
Wordpress – атака клонов.Часть2 – установка на Localhost – настройка плагинов navigation, antispam, excerpt reloaded.
В первой части статьи мы выяснили, что иногда возникает потребность в массовый установке движка Wordpress, установили его на локальном сервере, узнали как создать базу данных, и познакомились с интерфейсом админки Wordpress v.2.7.1. Во второй узнаем как устанавливаются плагины the_excerpt Reloaded, WP-PageNavi, Akismet, SpamKarma2, Bad Behaviour ведь одной из важных составляющих настройки Вашего блога является установка плагинов.
Плагины – это специальные дополнения, которые расширяют возможности Вашего блога и делают его более индивидуальным и удобным одновременно. Возможности плагинов практически неограничены. Движок Wordpress в силу своей бесплатности и удобства развивается бешенными темпами. В интернете тысячи плагинов, как, кстати и тем оформления. Плагины, в зависимости от локализации можно скачать на wordpress.org/extend/plugins/ или ru-wordpress.org/category/wp-plugins, а впрочем, еще с тысяч адресов в интернете(weblogtoolscollection.com, wpzipper.com, www.wp-plugins-db.org, wp-plugins.net). Поиск рулит. Загрузить на хост плагины можно по FTP, но есть альтернативный способ. Начиная с версии 2.7 в админке есть опция для загрузки на сервер нужного плагина, упрощенным способом без ftp-клиента. Следуем в раздел Plugins – Add New – Install Plugins. В окошке Install a plugin in .zip format указываем путь к архиву с плагином у нас на компе например. Кроме этого там еще и поиск плагинов, лучшие, популярные и пр.

При установке Wordpress версии 2.5.1 я обычно первым делом для удобства активировал плагин админки Leopard Admin, но в нашей версии он не работает, да и ни один из 4-х 5-ти до этого известных мне плагинов админок не работал в Wordpress 2.7.1. Нашел два плагина, которые по идее должны работать даже с версией 2.8.2. Это Оzh-admin-drop-down-menu и Fluency Admin 2.0. Первый плагин напрочь отверг мои попытки, а Fluency Admin запустился на 2.7.1 и 2.8.4, но во-первых мне этот вариант выпадающего меню не очень понравился в плане эргономики, а во-вторых он плохо работал с Оперой. Вообще в интернете распространенным мнением является то, что удобней работать с версией Wordpress 2.5.1, в частности из за удобной админки. Мне админка Wordpress 2.7.1 поначалу не очень понравилась, она стала совершенно другой – непривычная какая-то. Но потом разобрался и, знаете, вошел во вкус. У меня даже создалось мнение, что для такой админки вообще плагин не нужен и прекратил поиски.
Ни для кого не секрет, что чем выше версия WordPress, тем больше он грузит сервер, больше разной для нас бесполезной информации, масса ссылок и пр. Помню когда вышла версия 2.6 я как то залез в дамп базы данных и ужаснулся сколько там ссылок и на мой взгляд левой информации. Да что там говорить, недавно я посмотрел сколько раз в базе данных весом несколько мегабайт повторяется слово WordPress. Ни много ни мало 2206 раз, WordPress.com – 868 раз, WordPress.org – 306, http://wordpress.org/ – 206 и.т.д и.т.п. При каждом входе в админку грузится много дополнительной информации, такой как анонс плагинов, новости WordPress, входящие ссылки, последние комментарии, упоминаемый выше поиск плагинов, лучшие, популярные. Это, естественно, грабит время и ресурсы. Чтобы админка заработала быстрее разработаны плагины – Dashboard-lite, dashboard-widget-manager, wordpress-dashboard-editor. Еще Clean-options нужен для того чтобы удалить из базы ненужную инфу. Вот, например вся информацию с rss-каналов что видна в доске объявлений оказывается хранится в базе данных и ее можно убрать с помощью этого плагина. Но вот при проверке оказалось что Dashboard-lite работает ниже версий WordPress 2.3, Dashboard Editor до версии 6.52, Dashboard-widget-manager прекрасно убирает все виджеты в доске объявлений тоже до версии 6.52. Обычно удаляется все, кроме Comments, Incoming Links. К моему большому сожалению ни один плагин у меня нормально не работал в версиях 2.7 – 2.84. Вот например устанавливаем плагин Dashboard Editor на версию 2.7 или 2.84. В Dashboard Managment – Dashboard Configuration ставим галки на Remove entire Widget section, Remove Developers news, Remove Planet News, Remove Wordpress Plugins, Remove Incoming Links – никакого эффекта, как только отмечаем Remove recent comments – доска полностью пустая и непонятно то ли эффект от плагина то ли глюк.
1. Начнем с плагина the_excerpt Reloaded.
Он позволяет отображать выдержку содержимого поста на главной странице, т.к. по мнению многих уважаемых seoшников полное содержание поста должно находится именно на странице с самим постом, а на главной странице, в RSS ленте, и.т.д. должна быть только часть его. Это нужно в частности для уменьшения количества дублированного контента на блоге. Некоторые темы имеют встроенную функцию выдержки поста, если нет – плагин надо обязательно поставить. Без него нам никак не обойтись.
Установка:
1. Распаковать файл “the-excerpt-reloaded.zip” и загрузить папку с содержимым в директорию “/wp-content/plugins/”.
2. Изменить конфигурационные настройки. В файле the-excerpt-reloaded.php присутствуют комментарии для помощи. Плагин можно настроить по следующим параметрам:
Количество слов отображаемых в выдержке.
Какие HTML теги остаются в выдержке.
Как WordPress должен форматировать содержимое выдержки, при ‘none’ отображается необработанное содержание. Отображать ли ссылку “more…”, также можно подредактировать ее внешний вид.
Выдержка из кода файла the-excerpt-reloaded.php – те самые конфигурационные настройки:
parse_str($args);
if(!isset($excerpt_length)) $excerpt_length = 200; // length of excerpt in words. -1 to display all excerpt/content
if(!isset($allowedtags)) $allowedtags = ‘all’; // HTML tags allowed in excerpt, ‘all’ to allow all tags.
if(!isset($filter_type)) $filter_type = ‘none’; // format filter used =>; ‘content’, ‘excerpt’, ‘content_rss’, ‘excerpt_rss’, ‘none’
if(!isset($use_more_link)) $use_more_link = 1; // display
if(!isset($more_link_text)) $more_link_text = “(more…)” . “LALALA”;
if(!isset($force_more)) $force_more = 1;
if(!isset($fakeit)) $fakeit = 1;
if(!isset($fix_tags)) $fix_tags = 1;
if(!isset($no_more)) $no_more = 0;
if(!isset($more_tag)) $more_tag = ‘div’;
if(!isset($more_link_title)) $more_link_title = ‘Continue reading this entry’;
if(!isset($showdots)) $showdots = 1;
return the_excerpt_reloaded($excerpt_length, $allowedtags, $filter_type, $use_more_link, $more_link_text, $force_more, $fakeit, $fix_tags, $no_more, $more_tag, $more_link_title, $showdots);
}
function the_excerpt_reloaded($excerpt_length=200, $allowedtags=’all’, $filter_type=’none’, $use_more_link=true, $more_link_text=”(more…)”, $force_more=true, $fakeit=1, $fix_tags=true, $no_more=false, $more_tag=’div’, $more_link_title=’Continue reading this entry’, $showdots=true) {
if(preg_match(’%^content($|_rss)|^excerpt($|_rss)%’, $filter_type)) {
$filter_type = ‘the_’ . $filter_type;
}
3. Активировать плагин “the_excerpt Reloaded” на странице управления плагинами в админ панели WordPress. Plugins – Installed – Manage Plugins – Action – Activate.
4. Заменить код в файлах шаблона темы, где это необходимо – прописать с заменой вот так:
Например в шаблоне default index.php
меняем на
Код подлежащий замене, чаще всего похож на вышеуказанный, или чуть отличается. Вот пример другого шаблона:
2. Очень удобный и очень нужный Плагин WP-PageNavi – плагин навигации страниц.
Кроме удобства, с его помощью можно получить дополнительные страницы 2-го уровня в SAPE, что нам выгодно, при работе в системе. Плагин предназначен для вывода расширенной постраничной навигации в удобном для нас месте страницы. Установка плагина WP-PageNavi заключается в загрузке плагина в папку плагинов, активирование через админку, и добавление кода в шаблон темы, обычно в конце кода перед footer. Код необходимо вставлять в файлы index.php и archive.php, т.е. там где выводится несколько постов.
Если в этих файлах уже присутствует код для вывода ссылок вида “Previous” и “Next”, например такого вида:
<?php previous_posts_link(’Previous »’) ?>;
то мы меняем его на наш код. В принципе менять его не обязательно. Также, по желанию, для более менее продвинутых можно подкорректировать внешний вид ссылок. Для этого нужно изменить файл pagenavi-css.css в папке с плагином(wp_2.7.1wp-contentpluginswp-pagenavi), ну там шрифты, цвета в различных состояниях, отступы и.пр. Проверка на работоспособность плагина.
Настройки плагина находятся в админке
Settings->WP-PageNavi->Page Navigation Options.

Кроме этого плагина, мы можем применить альтернативные решения – wp-page-numbers, PagerFix, SEO Pager, navi. Эти решения не хуже и не лучше, это просто альтернатива.
Далее борьба со спамом. Цель спамера – получить ссылку с вашего сайта, тем самым ослабляя его позиции. Ручные комментарии, те которые публикуются живыми людьми сложно определить. Существуют различные способы автоматизации защиты, от настройки в админке, например можно включить обязательную регистрацию (эта мера отсеивает какую то долю спамеров), т.е штатными средствами движка до множества плагинов. Алгоритмы у плагинов тоже разные. Например есть плагин maxsite-comment-allow. Основа работы – спамер – случайный посетитель и его данные будут единичными. Значит отображать ссылку нужно только у тех, кто оставил несколько комментариев. Блэк листы неплохое дело, кое кто их собирает и выкладывает в интернете. Можно расставлять на ссылки в комментах rel=”nofollow”, или вообще резать все ссылки,но говорят это неприлично, есть даже движение DoFollow и плагин DoFollow, который убирает rel=”nofollow” из ссылок в комментариях.
3. Конечно, самым популярным плагином в борьбе со спамом является Akismet.

Принцип работы таков: когда на ваш блог поступает новый комментарий, трекбек или пинг, он передаётся на вебсервис Akismet, который обрабатывает его, проверяет запрос на большое число критериев и даёт ответ – спам это или не спам, т.е. никаких блэк листов, фильтров и пр. мы не храним. Идет постоянное обучение, спам хранится 15 дней, можно отменить удаление, исправить ошибку и тогда пройдет информация о ложном срабатывании для анализа. Спам вручную, помеченный в настройках WordPress тоже будет передан для улучшения эффективности в Akismet. Практически – это то, что нужно зарегистрироваться в Wordpress.com, получить аккаунт(представляете если у Вас сотни блогов – сплогов, или рискуете засветиться в Google под одним аккаунтом, или придется регистрировать много аккаунтов, вручную заи…тесь), морально – ты где то на учете, бог знает куда еще идут собранные сведения…Чего стоят слова из официального FAQ – Почему я должен регистрироваться на WordPress.com для получения ключа? Потому что он позволяет нам использовать единую систему регистрации и лучшую защиту против злоупотреблений системой. Слово ”Система “….. Вообще существует мнение, что Akismet больше любит убивать нормальные комментарии, да тормозить работу блога.
При пользовании Akismet можно купить коммерческий ключ. Коммерческие ключи имеют более высокий приоритет по сравнению с бесплатными, сервис быстрее.
Plugins->Akismet Configuration, попадаем на страницу Akismet Configuration.
Здесь в настройках вводим WordPress.com API key для Akismet. Чтобы получить WordPress.com API key заходим на страницу wordpress.com/signup/,

выбираем язык, заполняем поля, выбираем из двух вариантов – только регистрация логина или получения блога с названием username.wordpress.com, и ждем пока нам на указанный email придет письмо с подтверждением регистрации. Таким образом мы получаем аккаунт на wordpress.com. Далее, после создания блога, в админ панели мы увидим свой API key, который можно использовать во многих случаях – в разных плагинах и на разных блогах.
Сейчас мы можем ввести API key полученный в WordPress.com прямо на локалхосте, если хотим на всех, созданных в будущем блогах – сплогах работать под одним аккаунтом, иначе придется ввести его позже на какой то из блогов после заливки на Host. Ставим галку на Automatically discard spam comments on posts older than a month, больше месяца нет смысла держать комментарии без модерирования. Смотрим Network Status. Если No problems, значит связь с Akismet серверами есть, нет – чекаем. При желании можно в существующую тему, в удобное для просмотра место вставить код:
Тогда на странице блога будет видно количество спам комментариев, да и вообще спамеры будут бояться.
Dashboard->Akismet Stats – попадаем на страницу Akismet. При введенном API-KEI, получите статистику.

Эти данные вы будете просматривать уже на хосте. Если Вас смущают все эти “маркировки “, получение аккаунтов, “кеев” и прочие заморочки, отключайте Akismet и воспользуйтесь альтернативным решением. Читайте дальше…
4. Сейчас многие используют SpamKarma2 для защиты блога от спама и считают его лучшим средством.
В отличии от Akismet, Spam Karma – не внешняя служба, обработка спама происходит в WordPress. Это означает независимость от стороннего сервера, например Akismet. Я как то проверял online сервисом внешние ссылки одного блога со всеми настройками и плагинами, так там одиноко светились две ссылки Akismet и сайт разработчика плагина wp-cumulus.
Рассмотрим установку плагина SpamKarma2. За основу возьмем spam_karma_2_3. Если у нас русскоязычный блог, установим файл русификации от mikolka. Для этого скачаем sk2-ru_RU.mo для кодировки UTF-8, проверим файл wp-config.php на наличие там строки define (’WPLANG’, ‘ru_RU’), и поместим sk2-ru_RU.mo в wp-content/plugins/sk2/lang.
5. sk2_akismet_plugin
Если хотите усилить защиту, подключите сервис Akismet, для этого есть дополнение к SpamKarma – плагинчик в виде одного файла sk2_akismet_plugin, который надо поместить в wp-content/plugins/sk2/sk2_plugins. Это параноидально – универсальный подход, из существующих на данный момент. После активирования SpamKarma2 в Tools и Settings появляются идентичные кнопки Spam Karma 2 – Stats. Открываем и видим таблицы с настройками анти-спам подмодулей в виде галочек и выпадающих списков.



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

1. Автоматически одобрить зарегистрированного пользователя выше или равном уровне.
2. Ограничение количества ссылок.
3. Подтверждение что комментатор был определенное время на странице до комментов.
4. Менеджирование Блэк листа – святое дело. Что то он у меня не открывается.
5. Включить Javascript в форму комментария.
6. Включить шифрование в форму комментария. Гарантирует, что форма была загружена прежде, чем комментарий отправлен.
7. Обнаруживать неподходящее использование объектов HTML(используется спаммерами, чтобы мешать обнаружению ключевого слова).
8. Проверять TrackBack исходной страницы, чтобы гарантировать, что он содержит ссылку на сайт.
9. Степень проверки (постоянные коментаторы получают одобрение, неизвестные коментаторы – под колпаком у Мюллера).
10. Проверка IP и URL комментария по спискам в реальном времени (может быть добавлен в блэк лист).
11. Проверка в Akismet web service(при подключении файла sk2_akismet_plugin.
12. Антиспам капча различной сложности.
13. Anubis – конечная инстанция, пропускать, не пропускать коммент.
14. Посылать или не посылать по email резюме спама и как часто.
Дополнительные настройки разбирать не будем, единственно, не поленитесь нажать кнопку проверки совместимости темы.
6. И еще плагин Bad Behaviour.

Это очень эффективный плагин, который позволяет идентифицировать спам-ботов прежде, чем они заспамят ваш блог. Он посылает 403 ошибку вместо доступа к сайту всем предполагаемым спамерам, он их не пропускает даже в очередь спама. Совместим с плагином wp-super-cache. Плохо что он блокирует некоторых благонадежных и даже нужных посетителей, например роботов. Во избежании этого надо будет добавить IP адреса в файл whitelist в каталоге плагина или наоборот в файле blacklist-а удалить нужные строки. Плагин создает небольшую дополнительную нагрузку на блог при загрузке страниц, но в то же время мы тормозов получаем больше при постинге спама – комменты хоть и обязательно модерируются перед публикацией, но все одно заносятся в базу, а Bad Behavior по идее режет спамера на подходе. Очевидно есть смысл собрать IP адреса всех нужных роботов и добавить в whitelist плагина. Мы возьмем сборку от уважаемого lecactus. Плагин русифицированный, здесь добавлены в белый список некоторые адреса и убрана блокировка трекбеков-пингов от блогов на WP. Чтобы использовать функцию Bad Behavior’s http:BL вы должны иметь http:BL Access Key (ключ доступа). Что это за ключ, честно говоря, сам не знаю. Хороший плагин, говорят он блокирует около 99% автоматического спама. После установки плагина в базе данных новая таблица.

А вот и созрело самое мощное решение для защиты – связка Spam Karma 2 + Akismet web service + Bad Behaviour 2. Какое из этих решений применить, зависит от многих факторов – цели которую Вы преследуете при создании сборки, от предполагаемого количества посетителей и, соответственно, комментаторов, ну и в первую очередь от Вас.
О настройках других плагинов позже, в следующей части.
Продолжение следует.
Автор Stepan Demin . Использование и копирование статьи РАЗРЕШАЕТСЯ с указанием автора и ссылки на первоисточник http://bloginf.com

