Вывод в RSS полных заголовков из SEO плагинов

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

Читать дальше..

Удаляем ненужные элементы wp_head

Заметил у себя в исходном коде страницы блога несколько мета-тегов, которых раньше не было. Например, <meta name="generator" content="WordPress 2.8.4" />, показ которого я давным-давно удалил, а также еще несколько строчек с непонятным мне содержимым, что-то вроде:

<link title="RSD" rel="EditURI" type="application/rsd+xml" href="" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="" /> 
<link title="" rel="index" href="" />
<link title="" rel="start" href="" />
<link title="" rel="prev" href="" />
<link title="" rel="next" href="" />
<meta name="generator" content="WordPress 2.8.4" />

Заголовки и ссылки я вырезал, но думаю и так понятно о чем я. Удивило меня то, что раньше почти все мета-теги образовывались напрямую в файле header.php шаблона и для удаления версии WordPress достаточно было удалить строчку:

<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />

Однако в последних версиях WordPress почти все мета-теги выводятся не через файл шаблона, а через функцию wp_head и поэтому прямо удалить лишний тег нельзя. Удалять вызов самой функции wp_head не рекомендую, некоторые популярные плагины из-за этого перестанут у вас работать.

Читать дальше..

Исключение рубрик с главной страницы

Способов исключения показа записей определенной рубрики на главной странице блога несколько. Больше всего мне нравится метод с добавлением своего фильтра в файл functions.php, так как это избавляет от необходимости править другие файлы шаблона, а в частности не надо возиться с переделкой цикла вывода записей в index.php через query_posts. Рассмотрим самый простой пример: удаляем записи рубрики с ID=5 с главной страницы, для этого добавим в файл functions.php код:

function removeFromHome($query) {
if ($query->is_home) 
	{$query->set('cat','-5');}
return $query; }
add_filter('pre_get_posts','removeFromHome');

Теперь на главной странице не будут присутствовать записи из рубрики с ID 5. Хочу напомнить, что в понимании WordPress главной страницей считается также и любая другая страница, образованная постраничной навигацией. То есть посты из рубрики 5 вы не увидите и на /page/2, /page/3 и др. Если вас это не устраивает, то вы должны слегка модифицировать приведенный код.

Читать дальше..

Добавляем нумерацию комментариев в WordPress 2.7

Как добавить нумерацию комментариев в блог на WordPress знают многие, так как различные способы описаны на многих сайтах. Однако с выходом WordPress 2.7 и с разделением комментариев на страницы ни один из этих способов больше не работает: счетчик комментариев на каждой странице комментариев начинает работать с нуля. Решение данной проблемы я нашел на одном из англоязычных форумов поддержки WordPress, его и опишу.

Читать дальше..

Нет автоматическим регистрациям

В предыдущей статье я описал свои проблемы с удалением кучи зарегистрированных спам-юзеров в блоге, пришло время избавится от регистрации спам-юзеров таким же кардинальным образом, как я избавился от спам-комментариев. Естественно подразумевается, что и регистрации в блоге и написание комментариев осуществляется спам-скриптами, так как защититься от ручного спама весьма и весьма проблематично. Но ручной спам это лишь тысячная доля от всего спама и беспокоиться о нем вряд ли стоит. Метод защиты от авто-регистраций в блоге аналогичен методу защиты от спам-комментариев - будем использовать подмену полей. Причем вся эта защита займет у вас максимум 5 минут, да и то половина из этих 5 минут уйдет на обновление файла wp-login.php на сервере вашего хостера.

Читать дальше..