WordPress Support

All in One Seo Pack и SEO Title Tag – вывод в RSS полных заголовков.

Добавлено 15 июля 2010 в категорию Плагины.

WordPress формирует RSS ленту блога, используя "родные" заголовки записей. То есть, если вы используете какой-то из плагинов, формирующих титлы страниц, то такие сформированные титлы использоваться при создании RSS ленты не будут. Зачастую, на это можно не обращать внимания, но иногда возникает необходимость отдать в RSS полный текст заголовка, который вы прописали в одном из SEO плагинов вроде All in One SEO Pack или Seo Title Tag. Самой простой пример – при трансляции ленты в Twitter короткие заголовки делают ваши твиты крайне неинформативными. И именно в этом случае было бы неплохо отдать в RSS ленту полный заголовок записи, прописанный вами специально для поисковых систем.

1. Хак при использовании плагина All in One SEO Pack.

Откройте файл "wp-includesfeed-rss2.php" и найдите строчку:

36
<title><?php the_title_rss() ?></title>

Замените ее на код:

36
37
38
39
<title><?php $rsstitle = htmlspecialchars(stripcslashes(
get_post_meta($post->ID, '_aioseop_title', true)));
if ($rsstitle=="") {the_title_rss();}
else {echo $rsstitle;} ?></title>

Данный код проверяет, есть ли свой заголовок у записи, прописанный через плагин. Если нет, то будет использоваться обычный заголовок, а вот если да, то в RSS ленту попадет именно титл, указанный вами вручную. Сразу скажу – такой код поможет вам только, если вы сами указываете титл записи. То есть никаких дополнений вроде названия блога через разделитель вы тут не увидите. Хотя вы можете сами добавить нужный код в хак.

2. Хак при использовании плагина Seo Title Tag.

Откройте файл "wp-includesfeed-rss2.php" и найдите строчку:

36
<title><?php the_title_rss() ?></title>

Замените ее на код:

36
37
38
39
<title><?php $rsstitle = htmlspecialchars(stripcslashes(
get_post_meta($post->ID, 'title_tag', true)));
if ($rsstitle=="") {the_title_rss();}
else {echo $rsstitle;} ?></title>

Код, по сути, аналогичен предыдущему. Изменилось лишь название кастомного поля, используемого плагином для хранения титла записи. Для других SEO плагинов, формирующих заголовки хак будет идентичен, вам лишь надо будет узнать используемое этим плагином кастомное поле.

Оценить изменение RSS ленты после использования этого хака вы можете на примере этого блога. Последние записи в блоге имеют заголовки по умолчанию в виде одного только названия плагина, а вот в RSS ленте эти заголовки заменены на титлы, которые я прописывал вручную через плагин Seo Title Tag.

Плагин WordPress "WP-PostRatings" добавляет рейтинги записям в блоге.

Добавлено 15 июля 2010 в категорию Плагины.

WP-PostRatings это один из самых популярных плагинов, позволяющих посетителю оценить ваш пост. Плагин на самом деле используется больше для красоты, чем для реальной оценки записей в блоге, потому что для более-менее нормального рейтинга нужна достаточно приличная посещаемость (при моих 300 с небольшим человек в день голосуют считанные единицы). Вставлять оценку просто каких-либо записей в вашем блоге глупо, нужен конкретный предмет оценки – например, у меня это оценка плагина. На сайте с кино-рецензиями это будет оценка или фильма или самой рецензии, а на софт-блоге это будет оценка рассматриваемой программы. Так что прежде чем устанавливать этот плагин сначала решите для себя, а нужно ли это вашему блогу или все-таки нет.

Скачиваем плагин с его домашней страницы и устанавливаем его:

1. Распаковываем архив.

2. Копируем папку wp-postratings в /wp-content/plugins/.

3. Заходим в админку блога на вкладку "Плагины" и активируем плагин.

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

Сами настройки плагина вы найдете в "RatingsRatings Options", а настроить шаблоны вывода вы можете в "RatingsRatings Templates". Но не спешите переводить или настраивать там вывод фраз – вряд ли вы будете использовать все возможности плагина.

Чтобы встроить рейтинг вам необходимо добавить в файлы шаблона код (index.php, single.php и др.):

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

Этот код обязательно должен быть внутри цикла:

<?php while (have_posts()) : the_post(); ?>
...
<?php endwhile; ?>

Таким образом рейтинг будет показываться у каждой записи в вашем блоге. Если вам это не нужно, то не надо использовать вышеприведенный код. А для вставки рейтинга отдельных записей или страниц можно использовать тег [ratings] или [ratings id="1"], где 1 это ID рейтингуемой записи. Использовать и код в шаблоне и одновременную вставку тега [ratings] нельзя, так как в этом случае у вас обязательно возникнут проблемы (проверено лично).

Если вы хотите, чтобы при комментировании писался рейтинг, который поставил записи комментирующий, то уберите символы комментирования  (//) в строчке:

377
//add_filter('comment_text', 'comment_author_ratings_filter');

а перевод необходимых строчек надо сделать на:

403
404
405
406
if($post_ratings_images != '') {
	$output .= get_comment_author().' ratings for this post: '.$post_ratings_images;
} else {
	$output .= get_comment_author().' did not rate this post.';

И тогда у вас получится что-то типа:

Вывести различную статистику плагина можно легко через виджет "Ratings". Для вывода статистики напрямую нужно использовать различный код.

1. Вывод самых популярных записей в блоге.

<?php if (function_exists('get_highest_rated')): ?>
   <ul>
      <?php get_highest_rated(); ?>
   </ul>
<?php endif; ?>

По умолчанию используется get_highest_rated(‘both’, 0, 10), где both означает показывать и страницы и записи (post – только записи, page – только страницы), 0 означает необходимое число голосов прежде чем пост будет показан и 10 это число выводимых записей.

2. Вывод самых популярных записей по тегу.

<?php if (function_exists('get_highest_rated_tag')): ?>
   <ul>
      <?php get_highest_rated_tag(TAG_ID); ?>
   </ul>
<?php endif; ?>

По умолчанию используется get_highest_rated_tag(TAG_ID, ‘both’, 0, 10), TAG_ID это ID тега, both означает показывать и страницы и записи (post – только записи, page – только страницы), 0 означает необходимое число голосов прежде чем пост будет показан и 10 это число выводимых записей.

3. Вывод самых популярных записей в рубрике.

<?php if (function_exists('get_highest_rated_category')): ?>
   <ul>
      <?php get_highest_rated_category(CATEGORY_ID); ?>
   </ul>
<?php endif; ?>

По умолчанию используется get_highest_rated_category(CATEGORY_ID, ‘both’, 0, 10), CATEGORY_ID это ID рубрики, both означает показывать и страницы и записи (post – только записи, page – только страницы), 0 означает необходимое число голосов прежде чем пост будет показан и 10 это число выводимых записей.

4. Вывод наименее популярных записей в блоге.

<?php if (function_exists('get_lowest_rated')): ?>
   <ul>
      <?php get_lowest_rated(); ?>
   </ul>
<?php endif; ?>

По умолчанию используется get_lowest_rated(‘both’, 0, 10), где both означает показывать и страницы и записи (post – только записи, page – только страницы), 0 означает необходимое число голосов прежде чем пост будет показан и 10 это число выводимых записей.

5. Вывод наименее популярных записей по тегу.

<?php if (function_exists('get_lowest_rated_tag')): ?>
   <ul>
      <?php get_lowest_rated_tag(TAG_ID); ?>
   </ul>
<?php endif; ?>

По умолчанию используется get_lowest_rated_tag(TAG_ID, ‘both’, 0, 10), TAG_ID это ID тега, both означает показывать и страницы и записи (post – только записи, page – только страницы), 0 означает необходимое число голосов прежде чем пост будет показан и 10 это число выводимых записей.

6. Вывод наименее популярных записей в рубрике.

<?php if (function_exists('get_lowest_rated_category')): ?>
   <ul>
      <?php get_lowest_rated_category(CATEGORY_ID); ?>
   </ul>
<?php endif; ?>

По умолчанию используется get_lowest_rated_category(CATEGORY_ID, ‘both’, 0, 10), CATEGORY_ID это ID рубрики, both означает показывать и страницы и записи (post – только записи, page – только страницы), 0 означает необходимое число голосов прежде чем пост будет показан и 10 это число выводимых записей.

Более подробную информацию смотрите в документации к плагину.

Стили css плагина содержатся в файле postratings-css.css. Настраивайте вывод как вам угодно, но, пожалуйста, не забудьте поправить вывод иконок.  А именно заменить строку:

37
margin: 0px;

на

37
margin: 0px 0px -2px 0px;

Просто раздражает, когда в каждом блоге видишь одно и тоже – иконки звездочек расположены выше, чем текст на той же строке. И почему-то никто не пытается поправить эту ситуацию (css по умолчанию и поправленный):

При использовании английской версии плагина почти все английские фразы, которые будут показываться на стороне клиента переводятся в настройках плагина в разделе шаблонов. Но есть еще парочка строк до которых надо добраться именно в файле wp-postratings.php, вам надо сделать перевод фраз "Loading" (показывается, когда вы голосуете) и "Please rate only 1 post at a time" (показывается, если вы быстро пытаетесь проголосовать за несколько записей сразу). Для этого замените строчки:

84
$loading = "n<$start_tag id="post-ratings-$id-loading"  class="post-ratings-loading"><img class="" title=""".__(&#39;Loading&#39;," alt="" src=""".plugins_url('wp-postratings/images/loading.gif').""" width="" height="" ...? ?wp-postratings?).? ?.__(?Loading?,? 16?? post-ratings-image?? /> ".__('Loading', 'wp-postratings')." ...</".$START_TAG.">n";

и

156
'text_wait' => __('Please rate only 1 post at a time.', 'wp-postratings'),

на

84
$loading = "n<$start_tag id="post-ratings-$id-loading"  class="post-ratings-loading"><img class="" title=""".__(&#39;Загрузка&#39;," alt="" src=""".plugins_url('wp-postratings/images/loading.gif').""" width="" height="" ...? ?wp-postratings?).? 16?? ?.__(?Загрузка?,? post-ratings-image?? /> ".__('Загрузка', 'wp-postratings')." ...</".$START_TAG.">n";

и

156
'text_wait' => __('Пожалуйста, подождите пока учтется ваш голос.', 'wp-postratings'),

На этом вроде все, удачи с плагином.

PS. Русскую версию плагина я все-таки нашел, вы можете ее скачать здесь (файл wp-postratings-1.50-ru_RU.zip).

 

Автор плагина: Lester "GaMerZ" Chan

Страница плагина: [ссылка]

Рассматриваемая версия: 1.50 от 13.06.2009

Совместимость с версией WordPress: 2.8 и выше.

Плагин WordPress "Akismet" отсеивает спам в комментариях к записям в блоге.

Добавлено 12 июля 2010 в категорию Плагины.

Раньше я считал, что антиспам плагины нужны только для самых раскрученных блогов, но однажды у меня на совсем почти пустом блоге к одной определенной записи посыпался спам в комментариях, причем не просто десяток спамных сообщений, а полторы тысячи (!) за 3 дня. В каждом спамном комментарии было множество ссылок, поэтому WordPress не пропустил ни одного из них, но разгребать эту кучу спама вручную не было никакой возможности и мне пришлось установить плагин, который я обычно сразу же удаляю на свеже-установленном блоге, а именно самый известный антиспам плагин Akismet.

Скачиваем последнюю версию плагина и устанавливаем:

1. Распаковываем архив.

2. Копируем папку akismet в /wp-content/plugins/.

3. Заходим в админку блога на вкладку "Плагины" и активируем плагин.

4. Плагин нам выдал следующее сообщение:

Что ж, идем по ссылке [ссылка] и регистрируемся там для получения этого самого API-ключа. Регистрация достаточно проста:

Username: (ваш логин)
Password: (ваш пароль, от 4 символов)
Confirm: (подтверждение пароля)
Email Address: (ваш имейл)
Legal flotsam: (ставьте галку, что вы согласны с условиями)

и выбор между:
Gimme a blog! (завести блог вида вашлогин.wordpress.com)
Just a username, please. (только логин для получения API-ключа)

Советую выбрать только логин. Жмем кнопку "Next". Время от времени сервер у них висит, так что если вам сообщили об ошибке следует просто подождать и попробовать зарегистрироваться попозже. Так же сообщение об ошибке может означать, что выбранный логин уже занят. Удивительно, но сообщить о занятости логина они не могут, выдавая общую ошибку. Если все прошло гладко, то вам сообщат о том, что подтверждающее письмо было отослано на ваш email и что вы должны подтвердить регистрацию в течение двух суток. Проверяем почту и кликаем на ссылку в письме от WordPress.com. Нам сообщат, что теперь аккаунт активирован и мы можем зайти по ссылке "login". Авторизируемся, попадаем на главную страничку. Смотрим вверху слева ссылку на "My Account", кликаем в выпадающем меню на ссылку "Edit Profile", видим следующую фразу:

Где выделенная часть и есть ваш API-код. Идем в "ПлагиныНастройки фильтра Akismet", вставляем API-код в соответствующее текстовое окошко и жмем на "Обновить настройки". Все, теперь плагин работает.

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

В теории это выглядит замечательно: кто-то отметил комментарий как спам и теперь похожий комментарий от данного автора будет отмечен как спам и у вас на блоге. Но на практике это означает, что если десятку блогеров не понравятся ваши комментарии и они отметят их как спам, то все ваши комментарии теперь будут попадать в спам на всех блогах, где используется Akismet, а это плохо тем, что большинство блогеров не просматривают список спамных комментариев и не вытаскивают оттуда ошибочно помеченные как спам комментарии. Нередки и подставы, когда злоумышленник использует ваше имя и ссылку на сайт, оставляя заведомо спамные комментарии на блогах. Рано или поздно вы попадете в "черный список". Как с этим бороться мне неизвестно. Но зная о таком возможном развитии событий не ленитесь просматривать у себя на блоге комментарии, помеченные как спам Akismet’ом – вполне возможно, что туда попали и неспамные комментарии.

Akismet также дает возможность показать сколько он отсеял спама на блоге. Для этого используйте следующий код:

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

И тогда вы получите вот такой счетчик спама:

Причем внешний вид этого счетчика можно легко настроить через css-код, который встроен в файл плагина. Для его изменения откройте akismet.php и отредактируйте следующий код:

1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
<style type="text/css">
#akismetwrap #aka,#aka:link,#aka:hover,#aka:visited,#aka:active{color:#fff;text-decoration:none}
#aka:hover{border:none;text-decoration:none}
#aka:hover #akismet1{display:none}
#aka:hover #akismet2,#akismet1{display:block}
#akismet2{display:none;padding-top:2px}
#akismeta{font-size:16px;font-weight:bold;line-height:18px;text-decoration:none}
#akismetcount{display:block;font:15px Verdana,Arial,Sans-Serif;font-weight:bold;text-decoration:none}
#akismetwrap #akismetstats{background:url(<?php echo get_option('siteurl'); ?>/wp-content/plugins/akismet/akismet.gif) no-repeat top left;border:none;color:#fff;font:11px 'Trebuchet MS','Myriad Pro',sans-serif;height:40px;line-height:100%;overflow:hidden;padding:8px 0 0;text-align:center;width:120px}
</style>

Кстати, возвращаясь к моему случаю с получением полутора тысяч спамных комментариев за 3 дня. Хотя Akismet мне помог в плане того, что все они были помечены как спам мне все же пришлось отключить комментарии к той записи вообще. Из-за банальной вещи: слишком уж большая нагрузка была на сервер и иначе как отключением комментариев решить проблему не удалось. Надеюсь вы не попадете в базы данных специализированного спам-софта и вам не придется использовать отключение комментариев, как выход из ситуации.

 

Автор плагина: Matt Mullenweg

Страница плагина: [ссылка]

Рассматриваемая версия: 2.2.6 от 20.07.2009

Совместимость с версией WordPress: 2.0 и выше.