Das Datum der letzten Beiträge des Nutzers vergleichen

Ich möchte das Datum der letzten beiden Beiträge eines Nutzers vergleichen. Ich bin neu in WordPress Entwicklung. Ich habe diesen Code geschrieben, aber ich bin mir nicht sicher, ob es richtig ist. Bitte hilf mir, es zu korrigieren:

$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; 

Solutions Collecting From Web of "Das Datum der letzten Beiträge des Nutzers vergleichen"

Entsprechend dem Codex manipulierst get_most_recent_post_of_user() zurückgegebenen Wert von get_most_recent_post_of_user() falsch. get_most_recent_post_of_user() direkt post_date_gmt unter blog_id , post_id und post_gmt_ts .

Wie auch immer, wenn Sie die 2 letzten Posts eines bestimmten Autors erhalten möchten , verwenden Sie stattdessen WP_Query , das standardmäßig die letzten Posts in der von Ihnen benötigten Reihenfolge erhalten soll.

 $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*/ 

Jetzt haben Sie nur die 2 letzten WP_Post- Objekte auf diese Weise zugänglich:

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

Wenn Sie noch die 2 letzten Postdaten vergleichen müssen:

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

Beachten Sie, dass wir jetzt 2 GMT- String-Daten haben, mit denen wir uns befassen müssen. Für Ihren Vergleich konvertieren wir sie in Zeitstempel :

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