Как проверить, активен ли плагин WordPress в сети или на одном сайте
При разработке темы или плагина нам иногда нужно проверить, доступен ли для использования определенный сторонний плагин. Здесь вы научитесь простому способу определения не только того, активен ли плагин на одном сайте, но и включен ли он во всей сети.
Обзор
WordPress хранит список активных плагинов в различных вариантах в базе данных, независимо от того, являются ли они плагинами, включенными по всей сети, или плагинами, включенными на одном сайте сети:
- active_sitewide_plugins: содержит подключаемые модули для всей сети.
- active_plugins: содержит плагины, включенные на текущем сайте сети.
Определение функции
При этом мы можем написать что-то вроде этого, чтобы проверить, включен ли определенный плагин в сети или на одном сайте:
if (! function_exists( 'elio_is_plugin_active')) {
function elio_is_plugin_active( $plugin = '') {
$network_active = false;
if (is_multisite()) {
$plugins = get_site_option( 'active_sitewide_plugins' );
if (isset( $plugins[$plugin])) $network_active = true;
}
return in_array( $plugin, get_option( 'active_plugins')) || $network_active;
}
}
В качестве примера проверим, активен ли плагин Jetpack. Теперь вы можете использовать функцию, которую мы написали следующим образом, передав в качестве параметра корневой каталог плагина, jetpack, и основной файл плагина, jetpack.php:
Давайте посмотрим на другой пример с плагином WooCommerce:
С помощью этого простого метода вы будете в безопасности при добавлении функций, предназначенных для работы с конкретным плагином, поскольку вы всегда сможете проверить, включен ли плагин.