Flector

Как вывести даты в стиле Twitter?

Даты в стиле Twitter

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

Опубликовано <?php echo human_time_diff(get_the_time('U'), 
current_time('timestamp')) . ' назад'; ?>

Если вы не знаете, где и как именно в вашей теме выводятся даты, то можно воспользоваться хаком, добавленным в файл functions.php вашей темы:

//человеческие даты в записях start
function wph_human_date($hdate = '') {
    if (!is_admin()) {
        $hdate = human_time_diff(get_the_time('U'), 
        current_time('timestamp')) . ' назад';
    }
   return $hdate;
}
add_filter('get_the_date', 'wph_human_date');
//человеческие даты в записях end

Этот код сам найдет, где в вашей теме выводятся даты и заменит их.

Для дат в комментариях нужно использовать отдельный сниппет:

//человеческие даты в комментариях start
function wph_human_comment_date($hdate = '') {
    if (!is_admin()) {
        $hdate = human_time_diff(get_comment_time('U'), 
        current_time('timestamp')) . ' назад';
    }
    return $hdate;
}
add_filter('get_comment_date', 'wph_human_comment_date');
//человеческие даты в комментариях end

Особенностью функции human_time_diff является поддержка ею локализации - то есть она правильно склоняет дату (1 день назад, 2 дня назад, 5 дней назад).


Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!