get_most_recent_post_of_user() – Gets a user’s most recent post.

You appear to be a bot. Output may be restricted

Description

Gets a user's most recent post.

Walks through each of a user's blogs to find the post with the most recent post_date_gmt.

Usage

$array = get_most_recent_post_of_user( $user_id );

Parameters

$user_id
( int ) required – User ID.

Returns

array Contains the blog_id, post_id, post_date_gmt, and post_gmt_ts.

Source

File name: wordpress/wp-includes/ms-functions.php


Lines:

1 to 37 of 37
function get_most_recent_post_of_user( $user_id ) {
  global $wpdb;

  $user_blogs       = get_blogs_of_user( (int) $user_id );
  $most_recent_post = array();

  /*
	 * Walk through each blog and get the most recent post
	 * published by $user_id.
	 */
  foreach ( (array) $user_blogs as $blog ) {
    $prefix      = $wpdb->get_blog_prefix( $blog->userblog_id );
    $recent_post = $wpdb->get_row( $wpdb->prepare( "SELECT ID, post_date_gmt FROM {$prefix}posts WHERE post_author = %d AND post_type = 'post' AND post_status = 'publish' ORDER BY post_date_gmt DESC LIMIT 1", $user_id ), ARRAY_A );

    // Make sure we found a post.
    if ( isset( $recent_post['ID'] ) ) {
      $post_gmt_ts = strtotime( $recent_post['post_date_gmt'] );

      /*
			 * If this is the first post checked
			 * or if this post is newer than the current recent post,
			 * make it the new most recent post.
			 */
      if ( ! isset( $most_recent_post['post_gmt_ts'] ) || ( $post_gmt_ts > $most_recent_post['post_gmt_ts'] ) ) {
        $most_recent_post = array(
          'blog_id'       => $blog->userblog_id,
          'post_id'       => $recent_post['ID'],
          'post_date_gmt' => $recent_post['post_date_gmt'],
          'post_gmt_ts'   => $post_gmt_ts,
        );
      }
    }
  }

  return $most_recent_post;
}
 

 View on GitHub View on Trac