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

Способов исключения показа записей определенной рубрики на главной странице блога несколько. Больше всего мне нравится метод с добавлением своего фильтра в файл 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 на сервере вашего хостера.

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

Проблема с использованием функции is_home()

Потратил сегодня пару часов, пытаясь понять, почему функция is_home() возвращает значение TRUE даже если открыта не главная страница блога. Путем тестов выяснилось, что за главную страницу считается любая страница, образованная постраничной навигацией (/page/2, /page/3 и т.д.). Если подумать, то это вполне логично для функций типа is_category() - ведь при переходе на вторую страницу определенной рубрики сама рубрика остается той же самой. Но ситуация с is_home() совершенно другая - главных страниц в блоге не может быть больше одной. Вероятно для создателей WordPress понятие "main blog page" сродни категории с таким же названием. Обойти проблему оказалось довольно легко, надо вместо кода:

<?php if ( is_home() ) { ?>
	<h1>Главная страница!</h1>
<?php } else { ?>
	<h1>Это не главная страница!</h1>
<?php } ?>

Использовать код:

<?php if ( (is_home())&&!(is_paged()) ) { ?>
	<h1>Главная страница!</h1>
<?php } else { ?>
	<h1>Это не главная страница!</h1>
<?php } ?>

Как вы видите, решение оказалось элементарным. Жаль, что для его поиска пришлось закопаться в форумы поддержки, так как в документации ничего подобного не нашлось.

Нет автоматическому спаму

Сегодня меня окончательно достал автоматический спам в комментариях: Akismet пропустил десяток спамных комментариев от всяческих "Гинекологов" с сообщениями типа "Очень было интересно читать, спасибо!" и "Даже моей маме понравилось :))". Плюс несколько десятков спамных комментариев он поймал, но ежедневно просматривать попавшие в спам комментарии на предмет попадания туда по ошибке нормального комментария меня утомило. Варианты с премодерацией и обязательной регистрацией в блоге я не рассматриваю - премодерация не отменит необходимости просмотра спама, а обязательная регистрация в блоге автоматом снизит активность комментирующих раз в 10 минимум. Установка капчи меня также не устраивает: во-первых, она тоже снижает активность читателей блога, ну и во-вторых, что будет с вашим комментарием, если вы ошиблись в вводе капчи? Правильно, текст уже написанного комментария исчезнет. Такой фигней страдают практически все анти-спам плагины. У того же Макса неправильно введенная капча приводит к потере комментария, если вы не удосужились перед отправкой его скопировать.

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

12345