Se il plugin è attivo? Controllare se il plugin è abilitato o no?
Sto utilizzando il plugin mingle e il plugin mingle-forum.
Voglio mostrare una certa parte del mio sito solo se questi due plugin sono attivi. Come posso risolvere questo problema?
<?php if ( is_plugin_active('mingle-forum') ) { ?>
<div id="login"><?php include (TEMPLATEPATH . '/inc/userlogin.php' ); ?></div>
<?php } ?>
Questo genera un errore PHP: Call to undefined function is_plugin_active
Qualche idea su cosa sto sbagliando?
aggiornamento:
<?php if ( plugin_active('plugin-directory/mingle-forum/wpf-main.php') ) { ?>
<div id="login"><?php include (TEMPLATEPATH . '/inc/userlogin.php' ); ?></div>
<?php } ?>
Questa funzione esiste in wp-admin/includes/plugin.php
quindi presumo che non venga inclusa dal tema.
Puoi sia require
che includerla, sia crearne una tua versione - vedi qui: http://wordpress.org/support/topic/is_plugin_active
AGGIORNATO:
Per favore controlla is_plugin_active

grazie, potrei aver trovato una soluzione ma ancora non riesco a farla funzionare. La funzione plugin_active è impostata nel mio file functions.php e non genera errori. Tuttavia il mio div.login NON compare MAI, indipendentemente dal fatto che il plugin sia attivo o meno. Forse sto controllando il percorso sbagliato? Hai idea di cosa potrei sbagliare qui?

trovata la soluzione. "plugin-directory" ovviamente deve essere il nome della directory dove si trova il file principale del plugin. Pensavo che "plugin-directory" fosse il percorso alla cartella dove sono tutti i file del plugin.

Esistono due modi per verificare se un plugin è attivo o meno.
- Puoi usare la funzione is_plugin_active per verificare se il plugin è attivo.
Se il plugin ha una classe, puoi verificare in questo modo:
if (class_exists('YITH_Woocompare_Frontend')) { echo 'il tuo codice'; }
La classe sopra menzionata è relativa al plugin YITH WooCommerce Compare. Il codice sopra verifica se la classe esiste e solo in quel caso eseguirà il codice all'interno delle parentesi.

Puoi anche verificare se un plugin è attivo o meno
$pluginList = get_option( 'active_plugins' );
$plugin = 'PLUGIN_DIR/NOME_FILE.php';
if ( in_array( $plugin , $pluginList ) ) {
// Il plugin 'mg-post-contributors' è attivo
}
Prova anche questo codice per semplicità
if ( is_plugin_active( 'PLUGIN_DIR/NOME_FILE.php' ) ) {
//il plugin è attivato
}

Puoi utilizzare semplicemente la funzione predefinita di WordPress. Questa funzione si trova in wp-admin/includes/plugin.php
.
Basta passare il percorso del file del plugin relativo alla directory dei plugin.
$pluginPath = 'akismet/akismet.php';
if ( is_plugin_active( $pluginPath ) ) {
echo 'Il plugin è attivato';
} else {
echo 'Il plugin non è attivato';
}
Per maggiori dettagli su is_plugin_active
consulta il link seguente:
https://developer.wordpress.org/reference/functions/is_plugin_active/
