Wie lade ich WP_Editor JS-Dateien manuell (mit AJAX)?

Ich lade WP_Editor manuell über AJAX, aber ich habe Probleme mit der Art, wie ich Dinge lade.

Zunächst füge ich alle -Tags in meinen AJAX-Callback ein, die mit dem folgenden Code erzeugt werden:

 // Create editor so scripts are generated ob_start(); wp_editor($content, $editor_id, $settings); $editor = ob_get_contents(); ob_end_clean(); // Get the scripts to return in AJAX call ob_start(); _WP_Editors::enqueue_scripts(); print_footer_scripts(); _WP_Editors::editor_js(); $scripts = ob_get_contents(); ob_end_clean(); // Return editor HTML and Scripts seperately wp_send_json_success(array('wp_editor' => $editor, 'scripts' => $scripts)); 

Dies gibt 8 -Tags und 2 CSS-Dateien zurück, die in meinen HTML-Code eingefügt werden, wenn der AJAX-Callback abgeschlossen ist. (Beachten Sie, dass dies Inline-JS und URLs sind, die auf JS-Dateien verweisen)

Ich möchte die getScript() -Methode von jQuery verwenden, um diese Skripte aufzurufen, anstatt -Tags getScript() .

Zweitens, auf einigen Seiten lade ich mehr als einen WP_Editor, und für jeden Editor, den ich lade, werden die Skripte ein zweites Mal eingefügt. Dies liegt an der Art, wie ich nach allen Skripten rufe.

Abgesehen davon, dass zusätzlicher Overhead hinzugefügt wird, führt dies auch dazu, dass ein Teil der Logik in diesen JavaScript-Dateien zweimal bei derselben Aktion ausgeführt wird, was ein großes Problem darstellt.

Im Moment sehe ich ein paar Lösungen für das Problem, mit dem ich konfrontiert bin:

  • Irgendwie filtern Sie, welche Skripte mit dem obigen Code zurückgegeben werden
  • Abfangen der Skripte und senden sie als Variablen mit AJAX
  • Generieren Sie die Skripte manuell (beste Lösung?)

Solutions Collecting From Web of "Wie lade ich WP_Editor JS-Dateien manuell (mit AJAX)?"