#wordpress
Вопрос:
Я хочу отобразить сообщение в стиле «Блог обновлен X дней назад» на своем сайте WordPress, я попробовал приведенный ниже код, но он выдает ошибку.
<?php
$posted = get_the_time('U');
$newest = $wpdb->get_row("select post_modified from $wpdb->posts
where post_type in ('page', 'post') and post_status = 'publish' order by post_modified desc");
echo mysql2date('m/d/Y',$newest->post_modified);
echo human_time_diff( strtotime( $newest ), current_time( 'timestamp', 1 ) );
?>
Предупреждение: strtotime() ожидает, что параметр 1 будет строковым
Любая помощь была бы великолепна!
Комментарии:
1. Если вы
var_dump($newest)
передhuman_time_diff
тем, что вы получите? Ошибка довольно проста. руководство по эксплуатации strtotime2.
object(stdClass)[1327] public 'post_modified' => string '2021-06-08 13:50:05' (length=19)
3. Да, это Объект, просто измените его на
$newest->post_modified
4. Эпично, спасибо. Если вы хотите написать ответ, я приму его.
Ответ №1:
Вы получаете эту ошибку, потому что передаете что-то другое, чем строка strtotime
.
От var_dump
$newest
того, кому вы передаете Объект.
object(stdClass)[1327]
public 'post_modified' => string '2021-06-08 13:50:05' (length=19)
Вы можете захватить post_modified
свойство — так как это строка.
Обновите эту строку:
// Updates $newest to $newest->post_modified
echo human_time_diff( strtotime( $newest->post_modified ), current_time( 'timestamp', 1 ) );