n-wp.ru — блог о WordPress

Как ограничить время показа постов с помощью произвольных полей

На доске объявлений нет нужды показывыать просроченные объявления. Так же нет смысла отображать объявления, актуальные только до определенной даты. Например, скидка действует только до 1 августа 2011 года — явно не имеющее уже смысла предложение. Скрыть с главной страницы (или с любой другой) посты, у которых просрочен срок годности, можно, применив произвольные поля.

Для этого нужно немного модифицировать цикл вывода постов. Найдите в файле index.php начало цикла:

После этих строчек нужно внедрить произвольное поле, в котором указывается дата и время, до которого может жить пост:

Не забудьте, что цикл должен заканчиваться:

Эта прививка проверяет вплоть до секунд, больше нуля разница между установленным в произвольном поле expire времением и текущим. Если больше — значить время жизни поста еще не истекло. Если меньше — все, нужно убирать пост с главной страницы. так как отсчет идет в секундах, то и устанавливать время скрытия поста в произвольном поле нужно точно до секунд — mm/dd/yyyy 00:00:00.

mm — это порядковый номер месяца, например 08.
dd — порядковый номер дня, например 26.
yyyy — это точный год, например, 2011.
00:00:00 — час, минута, секунда, например, 14:15:36.

Надеюсь, что тем, кому нужно будет такое скрытие неактуальных постов, внедрить вышеизложенный код будет не очень сложно.

tiaurus

Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

1 комментарий

  • А как сделать если нужно чтобы записи включались за неделю до этой даты (ну чтобы срок их показа был неделю) ?
    В полях уже стоят даты премьеры фильма (2011-11-27) ну и нужно вывести их начиная с 2011-11-20 по 27 число включительно.

    Или чтобы показывались с 27го числа одну неделю?

    Эта математика с expiretime и strtotime мне весь мозг поломала..