获取用户最近的帖子。

原型

get_most_recent_post_of_user( int $user_id )

描述

浏览每个用户的博客,找到最新的post_date_gmt帖子。

参数

$user_id (int) (Required)

返回值

(array)  包含blog_id,post_id,post_date_gmt和post_gmt_ts

源文件

路径:wp-includes/ms-functions.php

<?php
...
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;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/get_most_recent_post_of_user/