wake-up-neo.com

Kann nicht überprüfen, ob das Plugin aktiv ist

Ich arbeite an einem benutzerdefinierten Thema mit ACF. Ich möchte überprüfen, ob das Plugin aktiv ist oder nicht. Ich benutze diesen Code:

<?php include_once( ABSPATH . 'wp-content/plugins/advanced-custom-fields-pro/acf.php' ); 
if ( is_plugin_active( 'advanced-custom-fields-pro/acf.php' ) ) {

echo "hi";

} ?>

Ich erhalte jedoch den folgenden Fehler:

Schwerwiegender Fehler: Aufruf der undefinierten Funktion is_plugin_active () in /Users/johann/htdocs/clarity_v21/wp-content/themes/clarity/templates/header.php in Zeile 21

Irgendwelche Ideen was könnte falsch sein?


Basierend auf der angegebenen Antwort habe ich versucht:

if( class_exists('acf') ) { 

  if (($header_style)=='style2') {

}

und es hat funktioniert! Die Lösung besteht also darin, eine Klasse zu finden, die mit dem Plugin zusammenhängt, nach dem Sie suchen. In diesem Fall ist die Klasse "acf" spezifisch für das Plugin "Erweiterte benutzerdefinierte Felder" und erlaubte mir, die Bedingung nur dann auszuführen, wenn das Plugin aktiv war.

7
Johann

Versuche class_exists zu überprüfen:

<?php 
     if( class_exists('acf') ) {
        echo "hi";
     }
?>
15
Behzad

is_plugin_active() nur im Admin-Bereich verfügbar. Sie müssen die Kerndatei plugin.php in das Front-End aufnehmen, um diese Funktion nutzen zu können.

Aus WordPress Dokumentation

HINWEIS: In wp-admin/includes/plugin.php definiert, daher ist dies nur auf den Admin-Seiten verfügbar. Verweise auf diese Funktion müssen an admin_init oder eine spätere Aktion angehängt werden. Wenn Sie diese Funktion in einer Vorlage verwenden möchten, müssen Sie plugin.php manuell anfordern. Ein Beispiel finden Sie weiter unten.

So wird es sein

<?php include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); 
if ( is_plugin_active( 'advanced-custom-fields-pro/acf.php' ) ) {
    echo "hi";
} ?>
5
Sumit