Wie lokalisiere ich die admin.php nur einmal?

Ich erstelle eine Reihe von Plugins, die alle AJAX verwenden. Die Lokalisierung der admin.php in allen Plugins scheint etwas übertrieben zu sein. Gibt es eine Möglichkeit, das Skript nur einmal zu lokalisieren.

Jetzt weiß ich nicht, welches Plugin zuerst initialisiert wird, also muss ich die Localize-function in alle Plugins einfügen.

Die Art, wie ich es jetzt mache, ist durch den folgenden Code.

if( ! defined( 'AJAX_LOCALIZED' ) ){ define( 'AJAX_LOCALIZED', 1 ); wp_localize_script( 'my-ajax-script', 'ajax-object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); } 

Das funktioniert in Ordnung, aber vielleicht gibt es eine eingebaute Methode, um dies zu tun, vielleicht allgemeiner, die zu anderen Plugins passt.

Solutions Collecting From Web of "Wie lokalisiere ich die admin.php nur einmal?"

Gute Frage, mit der ich mich beschäftigt habe, aber nie ganz zufriedenstellend. Es wäre sehr schön, eine corefunktion zu finden, die das handhabt.

In der Zwischenzeit würde ich jedoch die ganze localize_script function umgehen und eine Aktion zu wp_head , die einfach ein globales Javascript-Objekt mit den Informationen definiert, die all Ihre Plugins benötigen. localize_script scheint für Fälle wie diesen etwas überstrapaziert zu sein, und obwohl diese Lösung sicherlich nicht eleganter ist, scheint es mir klarer zu sein:

 add_action( 'wp_head', 'localize_ajax_scripts' ); if ( !function_exists( 'localize_ajax_scripts' ) ) { function localize_ajax_scripts() { $ajaxurl = admin_url( 'admin-ajax.php' ); echo < < var ajax_object = { ajaxurl: {$ajaxurl} }  JS; } } 

Wenn Sie dieselbe function zweimal auf einem Haken hinzufügen, wird sie nicht zweimal ausgetriggers, sodass Sie die Konstante nicht definieren müssen. Sie müssen nur vermeiden, die function mehr als einmal zu definieren. (Und wenn Sie versuchen, die function für verschiedene Plugins anders zu definieren, um zusätzliche Informationen zu übermitteln, sind Sie wirklich in Schwierigkeiten.)