Plugin-function innerhalb eines benutzerdefinierten Plugins

Ich versuche, eine Plugin-function ( wp-bannerize() ) in meinem benutzerdefinierten Plugin zu verwenden. aber wenn ich schreibe:

 if( function_exists('wp_bannerize') ){ echo "exist"; }else{ echo "not exist"; } 

Die Ausgabe ist not exists

Wie kann ich diese function in meinem benutzerdefinierten Plugin bekommen?

AKTUALISIEREN:

Hier der Code meines Plugins:

 class Infinite_posts{ public function __construct() { add_action('wp_ajax_is_bannerize', 'load_plugins'); //when plugin receive an AJAX call with 'is_bannerize'parameter load_plugins() is triggered } public function load_plugins(){ add_action( 'plugins_loaded', 'show_bannerize' ); //when all plugin are loaded show_bannerize() is triggered } public function show_bannerize(){ if( function_exists( 'wp_bannerize' ) ) { echo "exist"; } else { echo "not exist"; } } } if( !is_admin() ) $infinitePosts = new Infinite_posts(); 

hier mein Javascript auch:

 $('.gallerie h2').on('click', function(){ jQuery.post( 'http://localhost/~sdibenedetto/d-art/htdocs/wp-content/plugins/infinite-posts/infinite-posts.php', { 'action': 'is_bannerize', 'data': 'foobarid' }, function(response){ alert('The server responded: ' + response); } ); }); 

Ist das richtig? Wie kann man den AJAX aufrufen und den Parameter “is_bannerize” übergeben, um das Plugin auszulösen? Mit diesem Javascript habe ich diesen Fehler in der Warnung:

 Fatal error: Call to undefined function add_action() in /Users/sdibenedetto/Sites/d-art/htdocs/wp-content/plugins/infinite-posts/infinite-posts.php on line 44

Bitte helfen. Vielen Dank

Solutions Collecting From Web of "Plugin-function innerhalb eines benutzerdefinierten Plugins"

Sie machen den Scheck wahrscheinlich zu früh. Stellen Sie sicher, dass alle Plugins geladen sind, bevor Sie versuchen, auf die von ihnen bereitgestellten Methoden zuzugreifen. Sie können in die plugins_loaded Aktion plugins_loaded , um sicherzustellen, dass alle Plugins geladen sind, bevor Sie versuchen, die functionen zu verwenden, die sie definieren.

 class My_Plugin { public static function init() { if( function_exists( 'wp_bannerize' ) ) { echo "exist"; } else { echo "not exist"; } } public function __construct() { ... } } add_action( 'plugins_loaded', array ( 'My_Plugin', 'init' ), 10 ); 

Deine Syntax ist falsch. Sie können Objektmethoden nicht wie folgt haken:

 add_action('wp_ajax_is_bannerize', 'load_plugins'); 

Sie müssen sie wie folgt haken:

 add_action('wp_ajax_is_bannerize', array($this,'load_plugins')); 

Ich bin verwirrt, wie Sie überhaupt ausgegeben werden.

Zweitens rufen Sie die Plugin-Datei direkt auf. Tu das nicht. Das Laden einer Datei über eine direkte URL wie diese – http://localhost/~sdibenedetto/d-art/htdocs/wp-content/plugins/infinite-posts/infinite-posts.php – führt dazu, dass die Datei nach draußen geladen wird eines WordPress-Kontextes. Sie werden alle Arten von “undefined function” -Fehlern und anderen functionsproblemen haben. Ihre class scheint versucht zu sein, die AJAX-API zu verwenden, aber Ihr Javascript ist es nicht. Sie müssen die API verwenden.

Korrigiere diese Probleme und komm zurück, wenn es noch andere Probleme gibt.