Сравнить даты последних сообщений пользователя

Я хочу сравнить дату двух последних сообщений пользователя. Я новичок в разработке WordPress. Я написал этот код, но я не уверен, правильно ли это. Пожалуйста, помогите мне в исправлении:

$ID = $post->ID; $user_id = $post->post_author; $author_recent_posts = get_most_recent_post_of_user( $user_id ); $last_post_id = $author_recent_posts[1]->post_id; $last_post = get_post($last_post_id); $last_post_date = $last_post->post_date; $post_date = $post->post_date; if ( $post_date - $last_post_date > 24*60*60 ) return; 

Согласно кодексу , вы get_most_recent_post_of_user() возвращаемое значение. get_most_recent_post_of_user() прямо возвращает post_date_gmt среди blog_id , post_id и post_gmt_ts .

В любом случае, если вы хотите получить 2 последних сообщения определенного автора , вместо этого используйте WP_Query , которые должны по умолчанию получать последние сообщения в том порядке, в котором вы нуждаетесь.

 $author_id = $author_id; $args = array( 'post_type' => 'post', 'author' => $author_id, 'posts_per_page' => 2, ); $query = new WP_Query( $args ); $last_posts = $query->get_posts(); /*Array of post objects*/ 

Теперь у вас есть только два последних объекта WP_Post, доступных таким образом:

 $last_post = $last_posts[0]; /*The most recent post object*/ $second_last_post = $last_posts[1]; /*The second most recent post object*/ 

Если вам по-прежнему нужно сравнить две даты последнего сообщения:

 $last_post_date = $last_post->post_date_gmt; $second_last_post_date = $second_last_post->post_date_gmt; 

Обратите внимание, что теперь у нас есть две даты строкой в ​​формате GMT . Для вашего компаньона мы преобразуем их в метку времени :

 $last_post_date = strtotime( $last_post_date ); $second_last_post_date = strtotime( $second_last_post_date ); if ( ( $last_post_date - $post_date ) > 86400 ) return;