SWITCH_TO_BLOG() │ WP 3.0.0
Переключение на другой блог
Функция switch_to_blog() позволяет вам переключаться на другой блог в WordPress. Это может быть полезно, если вам нужно получить записи или другую информацию из других блогов. Вы также можете вернуться к предыдущему блогу с помощью функции restore_current_blog().
Важно помнить, что код плагинов или тем, который загружен с оригинально запрашиваемого сайта, не будет изменён при переключении.
Время выполнения функции
- 1 раз — 0.00094 сек (медленно)
- 50000 раз — 5.201680 сек (быстро)
- PHP 7.4.8, WP 5.7.2
Хуки функции
switch_blog
Возвращаемое значение
Функция всегда возвращает true.
Использование
switch_to_blog( $new_blog_id, $deprecated );
Параметры
- $new_blog_id (int) (обязательный) — ID блога, на который нужно переключиться.
- $deprecated (true|false) — этот параметр не используется.
- По умолчанию:
null
- По умолчанию:
Примеры использования
Пример 1: Переключение на один блог
Переключаемся на блог с ID 5, чтобы отобразить его записи, а затем возвращаемся к текущему блогу.
// переключаемся на блог 5
switch_to_blog( 5 );
// Получаем записи из блога 5
$myposts = get_posts();
foreach( $myposts as $post ){
echo esc_html( $post->post_title ) .'
';
}
wp_reset_postdata();
// возвращаемся к текущему блогу
restore_current_blog();
Пример 2: Множественное переключение
Перед переключением на другой блог необходимо вернуться к текущему блогу...
foreach( $blog_ids as $blog_id ){
switch_to_blog( $blog_id );
// обрабатываем данные блога, на который мы переключились.
restore_current_blog();
}
Примечание: Если вы не вызовете restore_current_blog() после каждого switch_to_blog(), WordPress может неправильно сформировать URL для сайта.
Пример 3: Глобальная переменная $SWITCHED
Когда вы используете switch_to_blog() вне WordPress, нужно, чтобы глобальная переменная $switched была определена. Переменная, указывающая ID блога, возможно, также не будет равна $blog_id, поскольку она используется ядром WP.
Пример будет работать неверно, если $switched не определён.
1,
'post_status' => 'publish',
'post_type' => 'custom_post_type',
'post_content' => 'Содержимое записи здесь',
'post_title' => 'Заголовок записи здесь'
)
);
?>
Примечания
- См. также:
restore_current_blog() - Глобальные переменные:
$wpdb— объект абстракции базы данных WordPress.$blog_id— ID текущего блога.$_wp_switched_stack— массив, хранящий историю переключений блогов.$switched(true|false) — глобальная переменная, указывающая, произошло ли переключение.$table_prefix— префикс таблицы базы данных.$wp_object_cache— объект кеширования.
Изменения
- С версии 3.0.0 — введена в WordPress.
Эта статья будет полезна для начинающих пользователей WordPress и поможет лучше понять, как работает функция switch_to_blog().