Разработчики WordPress часто сталкиваются с потребностью выразить определенный промежуток времени в секундах, например закэшировать фрагмент на 900 секунд, или запланировать задание через 3600 секунд и т.д. Для таких ситуаций в ядре WordPress есть вспомогательные константы.
Таких констант всего пять:
MINUTE_IN_SECONDS
— одна минута в секундахHOUR_IN_SECONDS
— один час в секундахDAY_IN_SECONDS
— один день в секундахWEEK_IN_SECONDS
— одна неделя в секундахYEAR_IN_SECONDS
— один год в секундах
Использовать эти константы можно в темах и плагинах WordPress. Например, чтобы закэшировать фрагмент на 12 часов в транзитном кэше, можно воспользоваться следующим кодом:
set_transient( 'key', $value, 12 * HOUR_IN_SECONDS );
Подобным образом можно запланировать задачу с помощью WP_Cron
через две недели, например для подсчета статистики свежих записей:
wp_schedule_single_event( time() + 2 * WEEK_IN_SECONDS, 'my_event' );
Данные константы объявляются в функции wp_initial_constants()
на раннем этапе загрузки ядра WordPress в файле default-constants.php. Это значит, что ими можно пользоваться не только в темах, в плагинах и mu-плагинах WordPress, но и в таких специальных файлах как advanced-cache.php, db.php и sunrise.php, которые исполняются еще до загрузки каких-либо плагинов.
Например, MINUTE_IN_SECONDS
и другие константы удобно использовать в конфигурации плагина для кэширования страниц Batcache:
$batcache['max_age'] = 10 * MINUTE_IN_SECONDS; $batcache['times'] = 3; $batcache['seconds'] = 2 * HOUR_IN_SECONDS;
Константы не стоит использовать при работе с запросами WP_Query. Для таких запросов есть свой собственный гибкий класс WP_Date_Query, который позволяет выполнять комплексные запросы с датами при запросе записей из базы данных WordPress.