Kuinka tarkistaa, onko WordPress-laajennus aktiivinen verkossa vai yksittäisessä sivustossa
Kun kehitämme teemaa tai laajennusta, meidän on joskus tarkistettava, onko tietty kolmannen osapuolen laajennus käytettävissä. Täällä opit yksinkertaisen tavan havaita paitsi onko laajennus aktiivinen yhdessä sivustossa, myös onko se käytössä koko verkon laajuisesti.
Yleiskatsaus
WordPress tallentaa luettelon aktiivisista laajennuksista tietokantaan eri vaihtoehdoissa riippumatta siitä, ovatko ne laajennuksia, jotka on otettu käyttöön koko verkossa tai laajennuksia, jotka on otettu käyttöön verkon yhdessä paikassa:
- active_sitewide_plugins: sisältää laajennukset verkonlaajuiset laajennukset
- Active_plugins: sisältää laajennukset, jotka ovat käytössä verkon nykyisessä sivustossa.
Toiminnon määritelmä
Tämän avulla voimme koodata jotain tällaista tarkistaaksemme, onko tietty laajennus käytössä verkossa tai yksittäisessä sivustossa:
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;
}
}
Tarkistamme esimerkiksi, onko Jetpack-laajennus aktiivinen. Voit nyt käyttää kirjoittamaamme funktiota näin, välittämällä parametriksi laajennuksen juurihakemiston, jetpackin ja laajennuksen päätiedoston jetpack.php:
Katsotaanpa toinen esimerkki WooCommerce-laajennuksesta:
Tällä yksinkertaisella menetelmällä voit olla turvassa, kun lisäät toimintoja, jotka on tarkoitettu toimimaan tietyn laajennuksen kanssa, koska voit aina tarkistaa, onko laajennus käytössä.