get_the_time

Позволяет изменить время написания записи
Хук WordPress
INT 1.5.0
WordPress Icon
Содержание
  1. Описание хука
  2. Примеры использования
  3. Преобразование формата времени в строку
  4. Извлечение времени из объекта поста
  5. Форматирование времени в Unix-метку
  6. Изменение формата времени для поста
  7. Получение времени создания поста в формате PHP
  8. Изменение формата времени для всех постов
  9. Вопросы и ответы
  10. Как изменить формат вывода времени публикации поста?
  11. Как получить только год, месяц или день публикации поста?
  12. Как добавить свой собственный формат времени для вывода публикации поста?
  13. Как использовать Unix-таймстамп для вывода времени публикации поста?
  14. Как получить время публикации поста в другой временной зоне?
  15. Как получить время публикации поста без форматирования?
  16. Как получить время публикации поста в виде относительной строки (например, ‘2 часа назад’)?
  17. Как получить время публикации поста в другом языке?
  18. Как получить время публикации поста с учетом формата времени сайта?
  19. Связанные элементы

Описание хука

Хук get_the_time позволяет определить время написания поста. Он позволяет изменить отформатированную строку даты или Unix-время, если формат равен ‘U’ или ‘G’. Хук принимает формат даты, который можно задать в виде ‘G’, ‘U’ или в формате даты PHP. Также хук принимает объект поста.

Использование

apply_filters( 'get_the_time', $the_time, $format, $post )

Где:

  • $the_time (строка или целое число) — Отформатированная строка даты или Unix-время, если формат равен ‘U’ или ‘G’.
  • $format (строка) — Формат, используемый для получения времени написания поста. Принимает значения ‘G’, ‘U’ или формат даты PHP.
  • $post (WP_Post) — Объект поста.

/**
 * Возвращает время написания поста в формате 'd.m.Y H:i:s'.
 *
 * @param string|int $the_time Отформатированная строка даты или Unix-время.
 * @param string     $format   Формат даты.
 * @param WP_Post    $post     Объект поста.
 * @return string Время написания поста в формате 'd.m.Y H:i:s'.
 */
function custom_get_the_time( $the_time, $format, $post ) {
    // Изменяем формат даты на 'd.m.Y H:i:s'.
    $new_format = 'd.m.Y H:i:s';
    
    // Возвращаем отформатированную строку даты.
    return date_i18n( $new_format, strtotime( $the_time ) );
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

В приведенном выше примере кода мы определяем функцию custom_get_the_time, которая изменяет формат даты на ‘d.m.Y H:i:s’. Затем мы используем хук get_the_time и добавляем нашу функцию в качестве фильтра. Теперь при вызове функции get_the_time будет возвращаться время написания поста в новом формате ‘d.m.Y H:i:s’.

Примеры использования

Преобразование формата времени в строку


/**
 * Filters the time a post was written.
 *
 * @param string|int $the_time Formatted date string or Unix timestamp if $format is 'U' or 'G'.
 * @param string $format Format to use for retrieving the time the post was written. Accepts 'G', 'U', or PHP date format.
 * @param WP_Post $post Post object.
 * @return string|int Formatted date string or Unix timestamp if $format is 'U' or 'G'.
 */
function custom_get_the_time( $the_time, $format, $post ) {
    // Modify the time format
    $modified_time = $the_time . ' (modified)';
    return $modified_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

В этом примере мы создаем функцию custom_get_the_time, которая принимает три параметра: $the_time, $format и $post. Функция добавляет строку «(modified)» к значению времени, которое было получено с помощью хука get_the_time. Затем она возвращает измененное значение времени.

Извлечение времени из объекта поста


/**
 * Filters the time a post was written.
 *
 * @param string|int $the_time Formatted date string or Unix timestamp if $format is 'U' or 'G'.
 * @param string $format Format to use for retrieving the time the post was written. Accepts 'G', 'U', or PHP date format.
 * @param WP_Post $post Post object.
 * @return string|int Formatted date string or Unix timestamp if $format is 'U' or 'G'.
 */
function custom_get_the_time( $the_time, $format, $post ) {
    // Get the time from the post object
    $post_time = $post->post_date;
    return $post_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

В этом примере мы создаем функцию custom_get_the_time, которая принимает три параметра: $the_time, $format и $post. Функция извлекает время создания поста из объекта поста с помощью свойства post_date. Затем она возвращает полученное время.

Форматирование времени в Unix-метку


/**
 * Filters the time a post was written.
 *
 * @param string|int $the_time Formatted date string or Unix timestamp if $format is 'U' or 'G'.
 * @param string $format Format to use for retrieving the time the post was written. Accepts 'G', 'U', or PHP date format.
 * @param WP_Post $post Post object.
 * @return string|int Formatted date string or Unix timestamp if $format is 'U' or 'G'.
 */
function custom_get_the_time( $the_time, $format, $post ) {
    // Convert the time to Unix timestamp
    $unix_time = strtotime( $the_time );
    return $unix_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

В этом примере мы создаем функцию custom_get_the_time, которая принимает три параметра: $the_time, $format и $post. Функция использует функцию strtotime для преобразования времени в Unix-метку. Затем она возвращает полученную Unix-метку времени.

Изменение формата времени для поста


/**
 * Filters the time a post was written.
 *
 * @param string|int $the_time Formatted date string or Unix timestamp if $format is 'U' or 'G'.
 * @param string $format Format to use for retrieving the time the post was written. Accepts 'G', 'U', or PHP date format.
 * @param WP_Post $post Post object.
 * @return string|int Formatted date string or Unix timestamp if $format is 'U' or 'G'.
 */
function custom_get_the_time( $the_time, $format, $post ) {
    // Change the time format to 'F j, Y'
    $formatted_time = date( 'F j, Y', strtotime( $the_time ) );
    return $formatted_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

В этом примере мы создаем функцию custom_get_the_time, которая принимает три параметра: $the_time, $format и $post. Функция использует функцию date для изменения формата времени на ‘F j, Y’. Затем она возвращает отформатированное время.

Получение времени создания поста в формате PHP


/**
 * Filters the time a post was written.
 *
 * @param string|int $the_time Formatted date string or Unix timestamp if $format is 'U' or 'G'.
 * @param string $format Format to use for retrieving the time the post was written. Accepts 'G', 'U', or PHP date format.
 * @param WP_Post $post Post object.
 * @return string|int Formatted date string or Unix timestamp if $format is 'U' or 'G'.
 */
function custom_get_the_time( $the_time, $format, $post ) {
    // Get the time in PHP format
    $php_time = date_i18n( $format, strtotime( $the_time ) );
    return $php_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

В этом примере мы создаем функцию custom_get_the_time, которая принимает три параметра: $the_time, $format и $post. Функция использует функцию date_i18n для получения времени создания поста в формате PHP. Затем она возвращает полученное время.

Изменение формата времени для всех постов


/**
 * Filters the time a post was written.
 *
 * @param string|int $the_time Formatted date string or Unix timestamp if $format is 'U' or 'G'.
 * @param string $format Format to use for retrieving the time the post was written. Accepts 'G', 'U', or PHP date format.
 * @param WP_Post $post Post object.
 * @return string|int Formatted date string or Unix timestamp if $format is 'U' or 'G'.
 */
function custom_get_the_time( $the_time, $format, $post ) {
    // Change the time format to 'Y-m-d'
    $formatted_time = date( 'Y-m-d', strtotime( $the_time ) );
    return $formatted_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

В этом примере мы создаем функцию custom_get_the_time, которая принимает три параметра: $the_time, $format и $post. Функция использует функцию date для изменения формата времени на ‘Y-m-d’. Затем она возвращает отформатированное время.

Вопросы и ответы

Как изменить формат вывода времени публикации поста?

Для изменения формата вывода времени публикации поста в WordPress можно использовать хук get_the_time. Этот хук позволяет изменить отформатированную строку даты или временную метку, если формат указан как ‘U’ или ‘G’.

Для изменения формата вывода времени публикации поста, нужно добавить функцию-обработчик к хуку get_the_time. В этой функции можно изменить формат времени, используя PHP-форматирование даты или указав ‘G’ или ‘U’ для получения временной метки.

// Пример изменения формата вывода времени публикации поста
function custom_get_the_time( $the_time, $format, $post ) {
    // Изменяем формат времени на 'd.m.Y'
    $the_time = date( 'd.m.Y', strtotime( $the_time ) );
    return $the_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

Как получить только год, месяц или день публикации поста?

Для получения только года, месяца или дня публикации поста в WordPress также можно использовать хук get_the_time. В функции-обработчике хука можно использовать PHP-форматирование даты, чтобы получить только нужную часть даты.

// Пример получения только года публикации поста
function get_only_year( $the_time, $format, $post ) {
    // Используем 'Y' для получения только года
    $the_time = date( 'Y', strtotime( $the_time ) );
    return $the_time;
}
add_filter( 'get_the_time', 'get_only_year', 10, 3 );

Как добавить свой собственный формат времени для вывода публикации поста?

Для добавления своего собственного формата времени для вывода публикации поста в WordPress можно использовать хук get_the_time. В функции-обработчике хука нужно указать свой формат времени, используя PHP-форматирование даты.

// Пример добавления своего собственного формата времени
function custom_time_format( $the_time, $format, $post ) {
    // Используем 'j F Y, H:i' для формата "день месяц год, часы:минуты"
    $the_time = date( 'j F Y, H:i', strtotime( $the_time ) );
    return $the_time;
}
add_filter( 'get_the_time', 'custom_time_format', 10, 3 );

Как использовать Unix-таймстамп для вывода времени публикации поста?

Хук get_the_time позволяет изменить время, когда пост был написан, используя Unix-таймстамп.

Для использования Unix-таймстампа в формате времени публикации поста, необходимо:

  1. Обратиться к хуку get_the_time.
  2. Использовать параметр $format со значением ‘U’ или ‘G’.
  3. Передать в функцию apply_filters() Unix-таймстамп, формат времени и объект поста.

Пример кода:


function custom_get_the_time( $the_time, $format, $post ) {
    if ( $format === 'U' || $format === 'G' ) {
        $the_time = strtotime( $post->post_date );
    }
    return $the_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

Как получить время публикации поста в другой временной зоне?

Хук get_the_time также позволяет получить время публикации поста в другой временной зоне.

Для получения времени публикации поста в другой временной зоне, необходимо:

  1. Обратиться к хуку get_the_time.
  2. Использовать параметр $format со значением временной зоны в формате ‘e’.
  3. Передать в функцию apply_filters() формат времени, временную зону и объект поста.

Пример кода:


function custom_get_the_time( $the_time, $format, $post ) {
    if ( $format === 'e' ) {
        $timezone = new DateTimeZone( 'America/New_York' );
        $datetime = new DateTime( $post->post_date, $timezone );
        $the_time = $datetime->format( 'Y-m-d H:i:s' );
    }
    return $the_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

Как получить время публикации поста без форматирования?

Хук get_the_time также позволяет получить время публикации поста без форматирования.

Для получения времени публикации поста без форматирования, необходимо:

  1. Обратиться к хуку get_the_time.
  2. Использовать параметр $format со значением ‘U’.
  3. Передать в функцию apply_filters() формат времени, объект поста и дополнительные параметры.

Пример кода:


function custom_get_the_time( $the_time, $format, $post ) {
    if ( $format === 'U' ) {
        $the_time = strtotime( $post->post_date );
    }
    return $the_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

Как получить время публикации поста в виде относительной строки (например, ‘2 часа назад’)?

Для получения времени публикации поста в виде относительной строки, например, ‘2 часа назад’, можно использовать хук get_the_time. Этот хук позволяет изменить отображаемое время публикации поста.

Пример кода:

function custom_get_the_time( $the_time, $format, $post ) {
    // Получаем текущую дату и время
    $current_time = current_time( 'timestamp' );
    
    // Получаем дату и время публикации поста
    $post_time = strtotime( $post->post_date );
    
    // Вычисляем разницу между текущим временем и временем публикации поста
    $time_diff = $current_time - $post_time;
    
    // Если разница меньше часа, выводим относительную строку
    if ( $time_diff < 3600 ) {
        $the_time = human_time_diff( $post_time, $current_time ) . ' назад';
    }
    
    return $the_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

Как получить время публикации поста в другом языке?

Для получения времени публикации поста на другом языке можно использовать хук get_the_time с указанием нужного языка в параметре $format. Этот хук позволяет изменить формат отображаемого времени публикации поста.

Пример кода:

function custom_get_the_time( $the_time, $format, $post ) {
    // Устанавливаем нужный язык
    switch ( $format ) {
        case 'ru':
            $the_time = date_i18n( 'j F Y г.', strtotime( $post->post_date ) );
            break;
        case 'fr':
            $the_time = date_i18n( 'j F Y', strtotime( $post->post_date ) );
            break;
        // Добавьте другие языки по необходимости
    }
    
    return $the_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

Как получить время публикации поста с учетом формата времени сайта?

Для получения времени публикации поста с учетом формата времени сайта можно использовать хук get_the_time с указанием параметра $format в виде ‘G’ или ‘U’. Этот хук позволяет получить время публикации поста в формате Unix timestamp или в формате, заданном в настройках сайта.

Пример кода:

function custom_get_the_time( $the_time, $format, $post ) {
    // Если формат времени 'G' или 'U', возвращаем Unix timestamp
    if ( 'G' === $format || 'U' === $format ) {
        $the_time = strtotime( $post->post_date );
    }
    
    return $the_time;
}
add_filter( 'get_the_time', 'custom_get_the_time', 10, 3 );

Хук get_the_time позволяет изменить отображаемое время публикации поста. С его помощью можно получить время публикации в виде относительной строки, на другом языке или с учетом формата времени сайта. Используйте этот хук для настройки отображения времени публикации постов в WordPress.

Связанные элементы

  • Функция get_post_time(): Возвращает время публикации записи в формате Unix timestamp или в указанном формате.
  • Функция get_the_date(): Возвращает дату публикации записи в указанном формате.
  • Функция the_date(): Выводит дату публикации записи в указанном формате.
  • Функция get_the_modified_time(): Возвращает время последнего изменения записи в формате Unix timestamp или в указанном формате.
  • Функция get_the_modified_date(): Возвращает дату последнего изменения записи в указанном формате.
  • Функция the_modified_date(): Выводит дату последнего изменения записи в указанном формате.
  • Функция get_post_modified_time(): Возвращает время последнего изменения записи в формате Unix timestamp или в указанном формате.
  • Функция the_modified_time(): Выводит время последнего изменения записи в указанном формате.
  • Функция get_the_time(): Возвращает время публикации записи в формате Unix timestamp или в указанном формате.
Обсуждение