Функция get_post_timestamp()
в WordPress используется для получения временной метки поста (как времени публикации, так и времени последнего изменения) в формате Unix. Это позволяет разработчикам легко работать с датами и временем, получая точные временные значения, которые могут быть использованы в различных целях, таких как отображение дат на сайте или выполнение логики в зависимости от времени публикации.
get_post_timestamp( int|WP_Post $post = null, string $field = ‘date’ ): int|false
get_post_timestamp()
возвращает временную метку Unix для заданного поста, которая может быть использована для различных операций с датами и временем. Эта функция не учитывает смещение часового пояса, что делает её использование более предсказуемым при работе с временными метками.
Параметры
$post
(int|WP_Post): Необязательный параметр. ID поста или объект WP_Post. По умолчанию используется глобальный объект$post
.$field
(string): Необязательный параметр. Указывает, какое поле базы данных использовать для получения времени. Принимает значения: ‘date’ (время публикации) или ‘modified’ (время изменения). По умолчанию — ‘date’.
Возвращаемое значение
int|false
: Возвращает временную метку Unix при успехе, или false в случае ошибки.
Пример 1: Получение временной метки поста
В этом примере мы получим временные метки публикации и изменения поста:
$post_id = 42; // Замените на ID вашего поста
// Получаем временные метки
$published_time = get_post_timestamp($post_id); // Временная метка публикации
$modified_time = get_post_timestamp($post_id, 'modified'); // Временная метка изменения
echo 'Время публикации: ' . date('Y-m-d H:i:s', $published_time) . '<br>';
echo 'Время изменения: ' . date('Y-m-d H:i:s', $modified_time) . '<br>';
Пример 2: Использование объекта поста
Можно также передать объект поста вместо ID:
$post = get_post($post_id); // Получаем объект поста
// Получаем временные метки
$published_time = get_post_timestamp($post);
$modified_time = get_post_timestamp($post, 'modified');
echo 'Публикация: ' . date('Y-m-d H:i:s', $published_time) . '<br>';
echo 'Изменение: ' . date('Y-m-d H:i:s', $modified_time) . '<br>';
Пример 3: Сравнение временных меток
В этом примере мы сравним различные способы получения временных меток поста и выведем их в читаемом формате:
$post = get_post(42); // Получаем объект поста
$patt = "%s - %s\n"; // Шаблон для вывода
$mysql = 'Y-m-d H:i:s'; // Формат даты MySQL
// Сравниваем различные временные метки
echo sprintf($patt, strtotime($post->post_date), $post->post_date);
echo sprintf($patt, strtotime($post->post_modified), $post->post_modified);
echo "\nВременная метка через get_post_timestamp():\n\n";
$unix_published = get_post_timestamp($post);
$unix_modified = get_post_timestamp($post, 'modified');
echo sprintf($patt, $unix_published, date($mysql, $unix_published));
echo sprintf($patt, $unix_modified, date($mysql, $unix_modified));
Пример 4: Отображение дат с форматированием
Функция может также использоваться для отображения дат в удобном для пользователя формате:
function display_dates($post_id) {
// Получаем временные метки
$published_time = get_post_timestamp($post_id);
$modified_time = get_post_timestamp($post_id, 'modified');
// Форматируем даты
$formatted_published_date = date_i18n(get_option('date_format'), $published_time);
$formatted_modified_date = date_i18n(get_option('date_format'), $modified_time);
echo "<span>Дата публикации: $formatted_published_date</span><br>";
// Проверка, изменена ли запись
if ($modified_time > $published_time) {
echo "<span>Дата изменения: $formatted_modified_date</span><br>";
}
}
display_dates(42); // Замените на ID вашего поста
Заключение
Функция get_post_timestamp()
является мощным инструментом для работы с датами и временем в WordPress. Она позволяет разработчикам получать временные метки публикаций и изменений постов, а также эффективно манипулировать ими для отображения или других целей. Используя данную функцию, можно обеспечить более точное и предсказуемое управление временными данными на сайте.