Функция wp_is_large_network()
в WordPress определяет, является ли сеть «большой». По умолчанию, сеть считается большой, если в ней более 10,000 сайтов или более 10,000 пользователей. Эти значения можно изменить с помощью фильтра wp_is_large_network
, позволяя разработчикам устанавливать собственные критерии.
wp_is_large_network( string $using = 'sites', int|null $network_id = null ): bool
Параметры
- $using (строка, необязательный): Определяет, проверять ли сеть по количеству сайтов или по количеству пользователей. Может быть
sites
илиusers
. По умолчанию:'sites'
. - $network_id (int|null, необязательный): ID сети, для которой выполняется проверка. По умолчанию используется текущая сеть.
Возвращаемое значение
Возвращает true
, если сеть соответствует критерию «большая», и false
в противном случае.
Пример использования по умолчанию
Чтобы определить, является ли текущая сеть большой по количеству сайтов, используйте код ниже:
if ( wp_is_large_network() ) {
echo "Эта сеть содержит более 10,000 сайтов.";
} else {
echo "Эта сеть содержит менее 10,000 сайтов.";
}
По умолчанию функция проверит количество сайтов. Если оно больше 10,000, условие выполнится, и будет выведено соответствующее сообщение.
Использование с параметром $using
Вы можете изменить критерий проверки, указав параметр $using
как users
, чтобы оценить количество пользователей, а не сайтов.
if ( wp_is_large_network( 'users' ) ) {
echo "Эта сеть содержит более 10,000 пользователей.";
} else {
echo "Эта сеть содержит менее 10,000 пользователей.";
}
В этом случае WordPress проверит количество пользователей в сети, и если их более 10,000, условие будет считаться выполненным.
Пример с указанием конкретной сети
Функция wp_is_large_network()
также позволяет указывать конкретную сеть для проверки, если у вас в WordPress установлено несколько сетей:
$network_id = 2; // Замените на ID нужной сети.
if ( wp_is_large_network( 'sites', $network_id ) ) {
echo "Сеть с ID $network_id содержит более 10,000 сайтов.";
} else {
echo "Сеть с ID $network_id содержит менее 10,000 сайтов.";
}
В этом примере функция проверит сеть с ID 2 на соответствие критерию по количеству сайтов.
Кастомизация критерия с помощью фильтра wp_is_large_network
Фильтр wp_is_large_network
позволяет установить собственное значение для определения «большой» сети. В следующем примере сеть считается большой, если в ней более 5,000 сайтов или пользователей:
function custom_large_network( $is_large_network, $component, $count, $network_id ) {
return ( $count > 5000 );
}
add_filter( 'wp_is_large_network', 'custom_large_network', 10, 4 );
Этот код изменяет критерий, возвращая true
для сетей с более чем 5,000 сайтов или пользователей.
Пример с другим кастомным значением
В следующем примере изменим фильтр так, чтобы сеть считалась большой, если количество пользователей превышает 2,000, а сайтов — 1,000.
function custom_large_network_by_type( $is_large_network, $component, $count, $network_id ) {
if ( $component === 'sites' ) {
return ( $count > 1000 );
} elseif ( $component === 'users' ) {
return ( $count > 2000 );
}
return $is_large_network;
}
add_filter( 'wp_is_large_network', 'custom_large_network_by_type', 10, 4 );
Теперь критерии для сети зависят от типа данных. Если проверка идет по сайтам, сеть будет считаться большой при наличии более 1,000 сайтов; если по пользователям — при наличии более 2,000 пользователей.
Примечания
- Фильтр
wp_is_large_network
предоставляет гибкость, позволяя изменять критерии проверки. Он принимает четыре параметра: текущий результат проверки ($is_large_network
), тип ($component
), количество ($count
), и ID сети ($network_id
). - Функция удобна при управлении ресурсами больших сетей WordPress, поскольку позволяет гибко настраивать пределы и добавлять оптимизацию в зависимости от размера сети.
Заключение
Функция wp_is_large_network()
полезна для сайтов с несколькими сетями и предоставляет возможность динамически менять критерии для оценки «больших» сетей с помощью фильтра.