Hur man kontrollerar om ett WordPress-plugin är aktivt i nätverket eller enstaka webbplatser
När vi utvecklar ett tema eller en plugin behöver vi ibland kontrollera om en viss tredjeparts plugin är tillgänglig för användning. Här får du lära dig ett enkelt sätt att upptäcka inte bara om plugin-programmet är aktivt på en enda webbplats utan också om det är nätverksomfattande aktiverat.
Översikt
WordPress lagrar listan över aktiva plugins i olika alternativ i databasen oavsett om de är plugins aktiverade i hela nätverket eller plugins aktiverade på en enda webbplats i nätverket:
- active_sitewide_plugins: innehåller plugins som är nätverksomfattande aktiverade plugins
- active_plugins: innehåller de plugins som är aktiverade på den aktuella platsen i nätverket.
Funktionsdefinition
Med detta kan vi koda något så här för att kontrollera om ett visst plugin är aktiverat i nätverket eller enstaka webbplatser:
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;
}
}
Som ett exempel kommer vi att kontrollera om plugin-programmet Jetpack är aktivt. Du kan nu använda funktionen som vi skrev så här, och som parameter skickar plugin-rotkatalogen, jetpack, och plugin-huvudfilen, jetpack.php:
Låt oss se ett annat exempel med WooCommerce-plugin:
Med denna enkla metod är du säker när du lägger till funktionalitet som är tänkt att fungera med ett visst plugin eftersom du alltid kommer att kunna kontrollera om plugin är aktiverat.