Wordpress вывод относительной даты: сегодня, вчера?

Здравствуйте.
Подскажите, пожалуйста, как на сайте wordpress реализовать вывод относительной даты? А именно необходимо выводить только сегодня и вчера, а те записи, которые старше дата в виде d.m.Y.
  • Вопрос задан
  • 1775 просмотров
Решения вопроса 1
llgruff
@llgruff
Scala
Вам нужны фильтры
get_the_date() — получает дату создания и
get_the_modified_date() — получает дату изменения.

Вставьте в конец файла functions.php:
// часовой пояс Москва
$main_timezone = get_option( 'timezone_string', 'Europe/Moscow' );
date_default_timezone_set( "$main_timezone" );

// для даты создания
function main_get_the_date($the_date, $d, $post) {
	$d = 'd.m.Y';
	$date_now = date_format(date_create("now"), $d);
	$date_yesterday = date_format(date_create("yesterday"), $d);
	$post = get_post($post);
	if ( !$post ) {
		return $the_date;
	}
	$the_date = mysql2date( $d, $post->post_date);
	if ($date_now == $the_date) {
		$the_date = esc_html__( 'сегодня', 'main' );
	} elseif ($date_yesterday == $the_date) {
		$the_date = esc_html__( 'вчера', 'main' );
	}	
	return $the_date;
}
add_filter( 'get_the_date', 'main_get_the_date', 10, 3 );

// для даты изменения
function main_get_the_modified_date($the_time, $d) {
	$d = 'd.m.Y';
	$date_now = date_format(date_create("now"), $d);
	$date_yesterday = date_format(date_create("yesterday"), $d);
	$the_time = get_post_modified_time($d, null, null, true);
	if ($date_now == $the_time) {
		$the_time = esc_html__( 'сегодня', 'main' );
	} elseif ($date_yesterday == $the_time) {
		$the_time = esc_html__( 'вчера', 'main' );
	}
	return $the_time;
}
add_filter( 'get_the_modified_date', 'main_get_the_modified_date', 10, 2 );
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
OtshelnikFm
@OtshelnikFm Куратор тега WordPress
Обо мне расскажет yawncato.com
Сравниваешь запись поста с текущей датой, прогоняешь через if else к примеру. И ставишь условия. Выполняются - ставишь синоним, нет - оставляешь числа. Чистый php с минимумом вордпресса.
Да и в гугле тонны материала на этот счет.
Ответ написан
dummyman
@dummyman
диссидент-схизматик
Ого сколько у вас кода. Не могу сказать конкретно по WP, но я использую на всех сайтах momentjs.com
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы