WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

clean_user_cache() WP 3.0.0

Очищает весь кэш указанного пользователя.

Ищем WP-разработчика! Фулл-тайм, удаленка, хорошая зарплата, соц. пакет. Подробности.
Компания Boosta.
Работает на основе: wp_cache_delete()
1 раз — 0.000052 сек (очень быстро) | 50000 раз — 8 сек (быстро) | PHP 7.0.2, WP 4.4.2
Хуки из функции

Возвращает

null. Ничего. Всегда NULL.

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

clean_user_cache( $user );
$user(WP_User/число) (обязательный)
ID или объект пользователя, кэш которого нужно полностью очистить.

Примеры

#1 Очистка кэша пользователя

Допустим мы обновляем пользователя и в процессе обновления мы изменил его данные, например отдельным запросом в БД. Теперь текущие данные могут не совпадать с темы что мы получим из кэша с помощью get_userdata() или с теми что находятся в глобальной переменной $current_user.

Чтобы обновить все эти данные нужно полностью очистить кэш пользователя:

$user_id = 12;
clean_user_cache( $user_id );

Заметки

  • Global. WP_User. $current_user The current user object which holds the user data.

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

С версии 3.0.0 Введена.
С версии 4.4.0 clean_user_cache was added.
С версии 5.8.0 Refreshes the global user instance if cleaning the user cache for the current user.

Код clean_user_cache() WP 5.8.2

function clean_user_cache( $user ) {
	global $current_user;

	if ( is_numeric( $user ) ) {
		$user = new WP_User( $user );
	}

	if ( ! $user->exists() ) {
		return;
	}

	wp_cache_delete( $user->ID, 'users' );
	wp_cache_delete( $user->user_login, 'userlogins' );
	wp_cache_delete( $user->user_email, 'useremail' );
	wp_cache_delete( $user->user_nicename, 'userslugs' );

	/**
	 * Fires immediately after the given user's cache is cleaned.
	 *
	 * @since 4.4.0
	 *
	 * @param int     $user_id User ID.
	 * @param WP_User $user    User object.
	 */
	do_action( 'clean_user_cache', $user->ID, $user );

	// Refresh the global user instance if the cleaning current user.
	if ( get_current_user_id() === (int) $user->ID ) {
		$user_id      = (int) $user->ID;
		$current_user = null;
		wp_set_current_user( $user_id, '' );
	}
}

Пользователи (_user)

cache (кэш кеш)

Комментариев нет
    Войти