Cum verifici dacă un plugin WordPress este activ sau nu?
Folosesc plugin-ul mingle și plugin-ul mingle-forum.
Vreau să afișez o anumită secțiune pe site-ul meu doar dacă aceste două plugin-uri sunt active. Cum pot rezolva acest lucru?
<?php if ( is_plugin_active('mingle-forum') ) { ?>
<div id="login"><?php include (TEMPLATEPATH . '/inc/userlogin.php' ); ?></div>
<?php } ?>
Acest cod generează o eroare PHP: Call to undefined function is_plugin_active
Aveți vreo idee ce fac greșit?
actualizare:
<?php if ( plugin_active('plugin-directory/mingle-forum/wpf-main.php') ) { ?>
<div id="login"><?php include (TEMPLATEPATH . '/inc/userlogin.php' ); ?></div>
<?php } ?>
Această funcție există în wp-admin/includes/plugin.php
, așa că presupun că nu este inclusă de tema.
Poți fie să o require
, fie să creezi propria versiune a ei - vezi aici: http://wordpress.org/support/topic/is_plugin_active
ACTUALIZAT:
Te rog verifică is_plugin_active

mulțumesc, poate am găsit o soluție dar încă nu funcționează. Funcția plugin_active este definită în fișierul meu functions.php și nu aruncă nicio eroare. Totuși, div.login NU apare NICIODATĂ, indiferent dacă pluginul este activ sau nu. Poate verific calea greșită? Ai vreo idee ce aș putea greși aici?

am găsit soluția. "plugin-directory" trebuie să fie desigur numele directorului unde se află fișierul real al pluginului. Credeam că "plugin-directory" este calea către directorul unde se află toate fișierele pluginului.

Există două modalități prin care poți verifica dacă un plugin este activ sau nu.
- Poți folosi funcția is_plugin_active pentru a verifica dacă pluginul este activ sau nu.
Dacă pluginul are o clasă, atunci poți verifica astfel:
if (class_exists('YITH_Woocompare_Frontend')) { echo 'codul tău'; }
Clasa menționată mai sus este legată de pluginul YITH WooCommerce Compare. Codul de mai sus verifică dacă clasa există și abia atunci va executa codul din interiorul acoladelor.

Puteți încerca, de asemenea, să verificați dacă un plugin este activ sau nu
$pluginList = get_option( 'active_plugins' );
$plugin = 'PLUGIN_DIR/FILE_NAME.php';
if ( in_array( $plugin , $pluginList ) ) {
// Plugin 'mg-post-contributors' este Activ
}
Încercați, de asemenea, următorul cod pentru simplitate
if ( is_plugin_active( 'PLUGIN_DIR/FILE_NAME.php' ) ) {
//pluginul este activat
}

Puteți folosi simplu funcția implicită din WordPress. Această funcție se află în wp-admin/includes/plugin.php
.
Pur și simplu treceți calea către fișierul pluginului relativă la directorul de plugin-uri.
$pluginPath = 'akismet/akismet.php';
if ( is_plugin_active( $pluginPath ) ) {
echo 'Plugin-ul este activat';
} else {
echo 'Plugin-ul nu este activat';
}
Pentru mai multe detalii despre is_plugin_active
, vă rugăm să consultați linkul de mai jos:
https://developer.wordpress.org/reference/functions/is_plugin_active/

Bine ați venit pe wpse! modul corect și actual de a verifica dacă un plugin este activ sau nu este prin utilizarea funcției function_exists. Dar dacă un plugin este orientat pe obiecte (OO) și nu folosește nicio funcție, ci doar metode, răspunsul tău nu abordează această situație.
