Вывод в RSS полных заголовков из SEO плагинов
WordPress формирует RSS ленту блога, используя "родные" заголовки записей. То есть, если вы используете какой-то из плагинов, формирующих титлы страниц, то такие сформированные титлы использоваться при создании RSS ленты не будут. Зачастую, на это можно не обращать внимания, но иногда возникает необходимость отдать в RSS полный текст заголовка, который вы прописали в одном из SEO плагинов вроде
Удаляем ненужные элементы 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 на сервере вашего хостера.