restore_current_blog()
Возвращает глобальные переменные в прежнее состояние, после переключения на другой сайт с помощью switch_to_blog().
функция перед работой проверяет было ли переключение, если его нет, то ничего не делает. Это значит, что функцию можно вызывать даже если переключения не было, на производительность это не повлияет.
Важно
Функцию нужно вызывать после каждого использования switch_to_blog(). Если этого не сделать, то глобальная переменная: $GLOBALS['_wp_switched_stack']
, которая следит за переключением, останется заполненной. WP будет думать, что вы в переключенном состоянии и может возвращать неправильный УРЛ на сайт при использовании - wp_upload_dir(). Это произойдет даже если переключиться на текущий сайт - вызвать switch_to_blog( ID ), где ID - это ID текущего блога.
При вызове switch_to_blog() несколько раз, каждый раз вызывайте restore_current_blog(). Или сохраните ID блога и в конце вызовите switch_to_blog() с этим ID и опустошите глобальные переменные:
$GLOBALS['_wp_switched_stack'] = array(); $GLOBALS['switched'] = false;
Хуки из функции
Возвращает
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. int. $blog_id
- Global. true|false. $switched
- Global. Строка. $table_prefix The database table prefix.
- Global. WP_Object_Cache. $wp_object_cache
Список изменений
С версии 3.0.0 | Введена. |