Поддержка метаданных для сайтов сети мультисайт в WordPress 5.1

В версии WordPress 5.1 была представлена новая таблица метаданных, предназначенная для сайтов внутри сети WordPress Мультисайт.

Хорошая новость – с производительностью метаданных всё окей, вы можете получать их сразу от нескольких сайтов и при этом даже не используя функцию switch_to_blog(). В то же время вы можете запускать циклы для сайтов используя WP_Meta_Query внутри WP_Site_Query. Например:

$args = array(
	'meta_query' => array(
		array(
			'key' => 'language',
			'value' => 'hawaiian'
		)
	)
);
$site_query = new WP_Site_Query();
 
$sites = $site_query->query( $args );

Либо то же самое, но при помощи функции get_sites():

$args = array(
	'meta_query' => array(
		array(
			'key' => 'language',
			'value' => 'hawaiian'
		)
	)
);
 
$sites = get_sites( $args );

Однако не забывайте, что опции сайтов пока ещё никто не отменял:

  • Используйте опции, если эти данные (настройки) никак не будут выходить за пределы того сайта, в котором используются.
  • Используйте метаданные в том случае, если они затронут сразу несколько сайтов сети (а потом их можно будет вытаскивать через meta_query).

Для того, чтобы установить эту таблицу, вы должны обновить базу данных (это делается кнопкой через админку и будет вам автоматически предложено после обновления на 5.1). Тем не менее, чтобы избежать недоразумений, вы можете воспользоваться функцией is_site_meta_supported(), чтобы убедиться, что таблица норм установлена.

Также мы получаем набор из уже знакомых нам функций:

Все эти функции доступны в сети WordPress Мультисайт и работают так же, как и другие функции для работы с метаданными, get_post_meta(), get_user_meta() и т.д.

Миша

Недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

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

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.