回答:
主な問題は、欠落しているスクリプトです。キューに入れられたスクリプト_WP_Editors::enqueue_scripts()
は決して印刷されません。同じことはにも当てはまります_WP_Editors::editor_js()
。
そのため、AJAXコールバックハンドラーでそれを行う必要があります。デモプラグインを作成し、GitHubに配置しました:T5 AJAX Editor。
という名前のクラスが1つありAjax_Editor
ます。そのメソッドrender()
は、AJAX要求でエディターを印刷します。
public function render()
{
if ( ! $this->validator->is_valid( TRUE ) )
die( 'nope' );
wp_editor( $this->data->get(), $this->editor_id, $this->settings );
\_WP_Editors::enqueue_scripts();
print_footer_scripts();
\_WP_Editors::editor_js();
die();
}
正確な順序は重要die()
です。最後に忘れないでください。まだ機能しないのは、メディアのアップロードです。それを含めようとするとJavaScriptエラーが発生します。
呼び出しprint_footer_scripts();
により、予想以上の結果が得られることに注意してください。一部のプラグイン(クエリモニターなど)は、AJAXリクエストに対してスクリプトを登録します。
wp.editor.initialize
:wordpress.stackexchange.com/a/274608/76440
それに苦労した後、動作する1行のソリューションを見つけました、コールバックに追加:
tinymce.execCommand( 'mceAddEditor', true, element.id );
tinymce内でドキュメントを見つけることができなかった理由はわかりません。