restore_current_blog()
Повертає глобальні змінні до попереднього стану, після перемикання на інший сайт за допомогою 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;
(дуже повільно) | 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. int. $blog_id
- Global. true | false. $switched
- Global. Рядок. $table_prefix
- Global. WP_Object_Cache. $wp_object_cache
список змін
З версії 3.0.0 | Введено. |