2016-07-26 20 views
2

Ich möchte überprüfen, ob Yoast SEO in WordPress installiert ist. Ich habe Yoast SEO in meiner Testumgebung aktiviert, aber es funktioniert nicht.WordPress: Überprüfen, ob Plugin installiert ist

Im wp-seo-main.php von Yoast, gibt es diese Zeile auf Zeile 16:

define('WPSEO_VERSION', '3.4'); 

Also dachte ich, das ist eine gute Linie zu überprüfen, ob Yoast installiert ist und läuft, so Ich tat:

if (defined('WPSEO_VERSION')) { 
    echo '<script>alert("Yes, defined");</script>'; 
} else { 
    echo '<script>alert("No, undefined");</script>'; 
} 

Aber es gibt mir "Nein, undefined". Wie seltsam, denn es sollte definiert werden.

Wer hat eine Idee? Ich habe keine Ideen mehr.

+0

Versuchen Sie zu sehen, ob das Plugin aktiv ist. Hier ist ein guter Artikel, der das in mehrfacher Hinsicht überprüft: http://queryloop.com/detect-wordpress-plugin-is-active/ –

+0

Denken Sie daran, wordpress.stackexchange.com auch gut, Ihre Frage möglicherweise besser geeignet – YakovL

+0

@YakovL Ja, aber ich dachte, das war eher eine PHP-bezogene Sache, aber es stellt sich heraus, dass es Wordpress-Funktionen dafür gibt. –

Antwort

2

Prüft, ob ein Plugin aktiviert ist.

HINWEIS: Definiert in wp-admin/includes/plugin.php, dies ist also nur innerhalb der Admin-Seiten verfügbar, und alle Verweise auf diese Funktion müssen mit admin_init oder einer späteren Aktion verknüpft werden. Wenn Sie diese Funktion aus einer Vorlage verwenden möchten, müssen Sie manuell benötigen plugin.php, ist ein Beispiel unter Verwendung

Admin area 
<?php 
/** 
* Detect plugin. For use in Admin area only. 
*/ 
if (is_plugin_active('plugin-directory/plugin-file.php')) { 
    //plugin is activated 
} 


Front end 
<?php 
/** 
* Detect plugin. For use on Front End only. 
*/ 
include_once(ABSPATH . 'wp-admin/includes/plugin.php'); 

// check for plugin using plugin name 
if (is_plugin_active('plugin-directory/plugin-file.php')) { 
    //plugin is activated 
} 

Reference Page

3

oder ohne zusätzliche Einschlüsse, Frontend oder Backend :

if(in_array('wordpress-seo/wp-seo.php', apply_filters('active_plugins', get_option('active_plugins')))){ 
    // do stuff only if Yoast is installed and active 
} 

mit jedem Plugin Works, in Ihre Plugins-Ordner für Ihr Ziel sieht gerade: plugin-folder/plugin-index-name.php wobei letztere shuld resident die Plugin Details oben in der Datei.

0

Inspiriert von Jonas Lundmans Antwort schrieb ich dies auch, wenn Yoast Premium aktiv ist.

private function isYoastActive(){ 
    $active_plugins = apply_filters('active_plugins', get_option('active_plugins')); 
    foreach($active_plugins as $plugin){ 
     if(strpos($plugin, 'wp-seo')){ 
      return true; 
     } 
    } 
    return false; 
} 
Verwandte Themen