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

restore_current_blog() WP 3.0.0

Возвращает глобальные переменные в прежнее состояние, после переключения на другой сайт с помощью switch_to_blog().

функция перед работой проверяет было ли переключение, если его нет, то ничего не делает. Это значит, что функцию можно вызывать даже если переключения не было, на производительность это не повлияет.

Заметки

restore_current_blog() нужно вызывать после каждого использования switch_to_blog(). Если этого не сделать, то глобальная переменная: $GLOBALS['_wp_switched_stack'], которая следит за переключением, останется заполненной. WP будет думать что вы в переключенном состоянии и может возвращать неправильный УРЛ на сайт при использовании - wp_upload_dir(). Это произойдет даже если переключиться на текущий сайт с помощью switch_to_blog().

При вызове switch_to_blog() несколько раз, каждый раз вызывайте restore_current_blog(). Или сохраните ID блога и в конце вызовите switch_to_blog() с этим ID и опустошите глобальные переменные:

$GLOBALS['_wp_switched_stack'] = array();
$GLOBALS['switched'] = false;
1 раз — 0.001188 сек (очень медленно) | 50000 раз — 0.059483 сек (скорость света)
Хуки из функции
Возвращает

true/false. true - при успешном возврате и false - если уже на текущем сайте.

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

restore_current_blog();

Примеры

#1 Возврат к текущему блогу

Пример показывает как вернуться к текущему блогу после того, как переключились на другой сайт и сделали там все что нужно:

// переключаемся на блог 5
switch_to_blog( 5 );

// Выводим данные блога на который переключились
// Получаем посты с блога 5
$myposts = get_posts();
foreach( $myposts as $post ){
	echo esc_html( $post->post_title ) .'<br>';
}
wp_reset_postdata();

// возвращения к текущему блогу
restore_current_blog();

Заметки

Заметки

  • Смотрите: switch_to_blog()
  • Global. wpdb. $wpdb WordPress database abstraction object.
  • Global. Массив. $_wp_switched_stack
  • Global. Число. $blog_id
  • Global. true/false. $switched
  • Global. Строка. $table_prefix
  • Global. WP_Object_Cache. $wp_object_cache

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

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

Код restore_current_blog() WP 5.6.2

<?php
function restore_current_blog() {
	global $wpdb;

	if ( empty( $GLOBALS['_wp_switched_stack'] ) ) {
		return false;
	}

	$new_blog_id  = array_pop( $GLOBALS['_wp_switched_stack'] );
	$prev_blog_id = get_current_blog_id();

	if ( $new_blog_id == $prev_blog_id ) {
		/** This filter is documented in wp-includes/ms-blogs.php */
		do_action( 'switch_blog', $new_blog_id, $prev_blog_id, 'restore' );

		// If we still have items in the switched stack, consider ourselves still 'switched'.
		$GLOBALS['switched'] = ! empty( $GLOBALS['_wp_switched_stack'] );

		return true;
	}

	$wpdb->set_blog_id( $new_blog_id );
	$GLOBALS['blog_id']      = $new_blog_id;
	$GLOBALS['table_prefix'] = $wpdb->get_blog_prefix();

	if ( function_exists( 'wp_cache_switch_to_blog' ) ) {
		wp_cache_switch_to_blog( $new_blog_id );
	} else {
		global $wp_object_cache;

		if ( is_object( $wp_object_cache ) && isset( $wp_object_cache->global_groups ) ) {
			$global_groups = $wp_object_cache->global_groups;
		} else {
			$global_groups = false;
		}

		wp_cache_init();

		if ( function_exists( 'wp_cache_add_global_groups' ) ) {
			if ( is_array( $global_groups ) ) {
				wp_cache_add_global_groups( $global_groups );
			} else {
				wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'useremail', 'userslugs', 'site-transient', 'site-options', 'blog-lookup', 'blog-details', 'rss', 'global-posts', 'blog-id-cache', 'networks', 'sites', 'site-details', 'blog_meta' ) );
			}

			wp_cache_add_non_persistent_groups( array( 'counts', 'plugins' ) );
		}
	}

	/** This filter is documented in wp-includes/ms-blogs.php */
	do_action( 'switch_blog', $new_blog_id, $prev_blog_id, 'restore' );

	// If we still have items in the switched stack, consider ourselves still 'switched'.
	$GLOBALS['switched'] = ! empty( $GLOBALS['_wp_switched_stack'] );

	return true;
}

Из раздела: Мультисайт

  • Главная

    Девушка во время оральных ласк главная , поэтому села пиздой на лицо парня

    www.yaeby.pro

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