get_current_blog_id() — возвращает ID текущего сайта сети WP Multisite

Под текущим сайтом подразумевается тот сайт, который в момент задействования этой функции открыт в браузере.

get_current_blog_id()

Аналогично функции get_current_user_id(), эта функция не имеет параметров и возвращает целое число — ID.

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

function get_current_blog_id() {
	global $blog_id;
	return absint($blog_id);
}

Хотя с ней и так всё понятно, давайте рассмотрим два примера.

Пример 1. Просто выводим ID сайта в виде целого числа

Ну тут два варианта, либо:

echo get_current_blog_id();

либо:

$etot_blog = get_current_blog_id();
echo $etot_blog;

Пример 2. Выводим последние записи с главного сайта сети и текущего

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

И вот как это сделать:

$etot_blog = get_current_blog_id(); // на самом деле эту переменную можно опустить, я просто добавил её для наглядности
$args = array(
	'blog_id' => array( 1, $etot_blog ), // блог с ID = 1 это главный сайт сети
	'posts_per_page' => 5
);
 
$nq = new Network_Query( $args ); // запускаем общий цикл для постов обоих сайтов
 
while( $nq->have_posts() ) : $nq->the_post();
 
	echo '<h2>' . $nq->post->post_title . '</h2>'; // выведем заголовок к примеру
 
endwhile;
network_reset_postdata();

Network_Query() — это аналог WP_Query, который в отличие от WP_Query(), работает для всех сайтов сети WordPress Multisite. Устанавливается он в виде моего плагина.

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Добрый день! В принципе вам только немного нужно доработать код из этого поста - категории уже есть, цена - это и так...

  • eveniy: Добрый день Михаил, подскажите на примере как добавить свои произвольные поля в в вашу форму фильтрации: Я так понимаю...

  • Миша: Отлично! )

  • Дмитрий: сам разобрался: в настройках кастомного типа записи недавно оптимизировал настройки и переоптимизировал: в аргументе 'ta...

  • Дмитрий: У меня по какой-то причине пропало отображение (как в колонке меню слева, так и метабокс в записях ) раздела рубрик для...