_get_last_post_time

函数
_get_last_post_time ( $timezone, $field, $post_type = 'any' )
Access
Private
参数
  • (string) $timezone The timezone for the timestamp. See get_lastpostdate(). for information on accepted values.
    Required:
  • (string) $field Post field to check. Accepts 'date' or 'modified'.
    Required:
  • (string) $post_type Optional. The post type to check. Default 'any'.
    Required:
    Default: 'any'
返回值
  • (string|false) The timestamp in 'Y-m-d H:i:s' format, or false on failure.
定义位置
相关方法
get_post_timeget_lastpostdateget_lastpostmodifiedget_post_datetimeget_post_timestamp
引入
3.1.0
弃用
-

_get_last_post_time: 这是一个用来获取最近的文章的时间戳的函数。它返回最近的文章的时间戳。

获取任何文章最后一次被修改或发布的时间戳。

function _get_last_post_time( $timezone, $field, $post_type = 'any' ) {
	global $wpdb;

	if ( ! in_array( $field, array( 'date', 'modified' ), true ) ) {
		return false;
	}

	$timezone = strtolower( $timezone );

	$key = "lastpost{$field}:$timezone";
	if ( 'any' !== $post_type ) {
		$key .= ':' . sanitize_key( $post_type );
	}

	$date = wp_cache_get( $key, 'timeinfo' );
	if ( false !== $date ) {
		return $date;
	}

	if ( 'any' === $post_type ) {
		$post_types = get_post_types( array( 'public' => true ) );
		array_walk( $post_types, array( $wpdb, 'escape_by_ref' ) );
		$post_types = "'" . implode( "', '", $post_types ) . "'";
	} else {
		$post_types = "'" . sanitize_key( $post_type ) . "'";
	}

	switch ( $timezone ) {
		case 'gmt':
			$date = $wpdb->get_var( "SELECT post_{$field}_gmt FROM $wpdb->posts WHERE post_status = 'publish' AND post_type IN ({$post_types}) ORDER BY post_{$field}_gmt DESC LIMIT 1" );
			break;
		case 'blog':
			$date = $wpdb->get_var( "SELECT post_{$field} FROM $wpdb->posts WHERE post_status = 'publish' AND post_type IN ({$post_types}) ORDER BY post_{$field}_gmt DESC LIMIT 1" );
			break;
		case 'server':
			$add_seconds_server = gmdate( 'Z' );
			$date               = $wpdb->get_var( "SELECT DATE_ADD(post_{$field}_gmt, INTERVAL '$add_seconds_server' SECOND) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type IN ({$post_types}) ORDER BY post_{$field}_gmt DESC LIMIT 1" );
			break;
	}

	if ( $date ) {
		wp_cache_set( $key, $date, 'timeinfo' );

		return $date;
	}

	return false;
}

常见问题

FAQs
查看更多 >