Как вывести относительную дату в WordPress?

23.04.2017

Вывод относительной даты дело довольно нехитрое, особенно при том что wordpress имеет встроенную функцию human_time_diff().

Подробно о применении функции можно почитать в кодексе. Удобна эта функция тем, что не придется подбирать самим правильные окончания для каждого числа (1 минута — 2 минуты — 5 минут), WordPress сделает это за вас.

Сначала вставьте этот код в конец functions.php :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  function relative_date() {
    global $post;
    $time_diff = human_time_diff( get_post_time('U'), current_time('timestamp') ); 
// Узнаем разницу во времени, от времени  публикации до времени в данный момент
    $post_date_time = mysql2date('H:i', $post->post_date, false);
    $the_date = mysql2date(get_option('date_format'), $post->post_date);
    if( gmdate('Y', current_time('timestamp')) != mysql2date('Y', $post->post_date, false)) {
        $output = $the_date; 
     } 
    else {
        $day_diff = (gmdate('z', current_time('timestamp')) - mysql2date('z', $post->post_date, false));
        if($day_diff < 0) { 
            $day_diff = 32;
             }
        elseif($day_diff == 0) {
        $output = "$time_diff назад"; 
        } 
        elseif($day_diff == 1) {
            $output = 'Вчера в '.$post_date_time; 
        } 
        elseif($day_diff <= 3) {
        $output = "$time_diff назад";
        } 
        else{
            $output = $the_date; 
        } 
    }
        echo $output;
}

А затем, чтобы вывести относительное время на сайте, поместите этот код внутрь цикла поста, например после вывода названия статьи или после the_content():

1
relative_date();

Комментарии

  • Оставьте первый комментарий - автор старался!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: