Начиная с версии WordPress 5.1 метаданные появились и у сайтов сети мультисайт. В базе данных вы можете найти их в таблице wp_blogmeta
.
Функция же get_site_meta()
позполяет получить значения этих метаданных. Работает точно также, как и другие функции для получения метаданных, например get_post_meta() или get_user_meta() – прочекайте описания этих функций, если вас интересуют супер-подробные объяснения.
get_site_meta( $blog_id, $meta_key = '', $single = false )
Параметры
- $blog_id
- (целое) ID сайта внутри сети мультисайт, метаданные которого хотим получить. Например вы можете использовать функцию get_current_blog_id() для получения ID текущего сайта. Если этот параметр указан неверно (например несуществующий сайт), то функция вернёт
false
. - $meta_key
- (строка) ключ мета поля, значение колонки
meta_key
в базе данных в таблицеwp_blogmeta
. Если скипнуть этот параметр, то будут возвращены вообще все возможные метаполя сайта сети в виде массива (в каком виде – показано ниже в примере). - $single
- (логическое) Дело в том, что с одним и тем же ключом может быть несколько значений в таблице
wp_blogmeta
. Если вы хотите получить все эти варианты значений в виде массива, то оставляете этот параметр как есть по умолчанию, если же вам нужно только одно значение поля (самое первое добавленное), либо же у вас и вовсе не хранится несколько значений, то конечно меняем наtrue
, тогда функция вернёт нам строку/массив, в зависимости от того, что находится в значении метаполя, при значенииfalse
мы всегда будем получать массив, пусть даже и из одного элемента.
Примеры
Если мы вернёмся к скриншоту, который был в самом начале:
То можем получить значения этого мета-поле строчкой кода:
echo get_site_meta( 1, 'language', true );
Или же для текущего сайта:
$site_id = get_current_blog_id(); // предположим хотим узнать язык текущего сайта echo get_site_meta( $site_id, 'language', true );
А ещё я обещал пример с получением всех возможных мета полей:
$everything = get_site_meta( 2 ); // для сайта с ID 2 print_r( $everything ); /* и получаем примерно это: Array ( [language] => Array ( [0] => french ) ) */