WP_User_Query::generate_cache_key()protectedWP 6.3.0

Generate cache key.

Метод класса: WP_User_Query{}

Хуков нет.

Возвращает

Строку. Cache key.

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->generate_cache_key( $args, $sql );
$args(массив) (обязательный)
Query arguments.
$sql(строка) (обязательный)
SQL statement.

Заметки

  • Global. wpdb. $wpdb WordPress database abstraction object.

Список изменений

С версии 6.3.0 Введена.

Код WP_User_Query::generate_cache_key() WP 6.3.1

protected function generate_cache_key( array $args, $sql ) {
	global $wpdb;

	// Replace wpdb placeholder in the SQL statement used by the cache key.
	$sql = $wpdb->remove_placeholder_escape( $sql );

	$key          = md5( $sql );
	$last_changed = wp_cache_get_last_changed( 'users' );

	if ( empty( $args['orderby'] ) ) {
		// Default order is by 'user_login'.
		$ordersby = array( 'user_login' => '' );
	} elseif ( is_array( $args['orderby'] ) ) {
		$ordersby = $args['orderby'];
	} else {
		// 'orderby' values may be a comma- or space-separated list.
		$ordersby = preg_split( '/[,\s]+/', $args['orderby'] );
	}

	$blog_id = 0;
	if ( isset( $args['blog_id'] ) ) {
		$blog_id = absint( $args['blog_id'] );
	}

	if ( $args['has_published_posts'] || in_array( 'post_count', $ordersby, true ) ) {
		$switch = $blog_id && get_current_blog_id() !== $blog_id;
		if ( $switch ) {
			switch_to_blog( $blog_id );
		}

		$last_changed .= wp_cache_get_last_changed( 'posts' );

		if ( $switch ) {
			restore_current_blog();
		}
	}

	return "get_users:$key:$last_changed";
}