I'm loading WP_Editor manually through AJAX, but I'm running into some issues with the way I'm loading things.
Firstly, I'm including all the
<script> tags into my AJAX callback, which are generated using the following code:
// 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));
This returns like 8
<script> tags and 2 CSS files that is inserted into my HTML when the AJAX callback completes. (Note that these are inline JS and urls linking to .js files)
I want to use jQuery's
getScript() method to call these scripts instead of inserting
Secondly, on some pages I'm loading more than one WP_Editor, and for each editor I load, the scripts are inserted a second time. This is due to the way I'm calling for all the scripts.
Right now, I see a few solutions to the issue I'm facing:
- Somehow filter which scripts are returned with the code above
- Intercept the scripts and send them as variables with AJAX
- Generate the scripts manually (best solution?)