Проблема с использованием функции 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 минимум. Установка капчи меня также не устраивает: во-первых, она тоже снижает активность читателей блога, ну и во-вторых, что будет с вашим комментарием, если вы ошиблись в вводе капчи? Правильно, текст уже написанного комментария исчезнет. Такой фигней страдают практически все анти-спам плагины. У того же Макса неправильно введенная капча приводит к потере комментария, если вы не удосужились перед отправкой его скопировать.

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

Изменение логина администратора

Забавно, но я был полностью уверен, что изменить имя администратора "admin" в WordPress невозможно. Я так часто видел в профиле надпись "Логин изменить нельзя", что искать способ изменения имени администратора и не пытался. Мне, как и всем остальным блогерам, было вполне достаточно возможной смены отображаемого имени на имя, указанное в нике. Однако заранее известное имя администратора блога оставляет для злоумышленников широкие возможности по использованию подбора пароля. Конечно, подобрать более-менее сложный пароль практически невозможно даже при известном логине администратора, но кто из блогеров использует в качестве пароля последовательность из 15-20 ничего не значащих символов? Единицы. Остальным же рекомендую изменить логин администратора и скрыть его, используя для отображения ник.

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

Добавляем число постов в рубрике в ссылку на рубрику

Настраивая шаблон к одному из своих блогов я столкнулся с небольшой проблемой: вывод числа постов в рубрике переносится на новую строку. Причина понятна: ссылки на рубрики выводятся в css параметром display: block;, что и выкидывает любое другое содержимое на новую строку. Моих любительских знаний в css не хватило, чтобы сходу решить эту проблемку, а на специализированных форумах мне никто не ответил. Просмотрев с десяток шаблонов, где ссылки на рубрики также выводятся в блоках я ни в одном из них не увидел решения своей задачи, в каждом из этих шаблонов число записей в рубрике тоже перескакивает на новую строку. То ли никто не задавался таким вопросом, то ли никто не знает как его решить, не знаю.

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

Отложенная публикация и wp-cron.php

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

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