ไม่มีใครรู้ว่าวิธีการโหลด wp_editor ผ่าน AJAX ใน WordPress?
มาร์กอัปและตัวแก้ไขของฉันกำลังโหลดอย่างถูกต้อง แต่ตัวควบคุมตัวแก้ไขไม่สามารถโหลดได้อย่างถูกต้องอาจเป็นเพราะ Javascript ไม่ทำงานในการโทร AJAX
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม
ไม่มีใครรู้ว่าวิธีการโหลด wp_editor ผ่าน AJAX ใน WordPress?
มาร์กอัปและตัวแก้ไขของฉันกำลังโหลดอย่างถูกต้อง แต่ตัวควบคุมตัวแก้ไขไม่สามารถโหลดได้อย่างถูกต้องอาจเป็นเพราะ Javascript ไม่ทำงานในการโทร AJAX
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม
คำตอบ:
ปัญหาหลักคือสคริปต์ที่ขาดหายไป สคริปต์ที่เข้าสู่ระบบ_WP_Editors::enqueue_scripts()
จะไม่ถูกพิมพ์ _WP_Editors::editor_js()
เช่นเดียวกับที่เป็นจริงสำหรับ
ดังนั้นคุณต้องทำอย่างนั้นในตัวจัดการการโทรกลับ AJAX ของคุณ ฉันได้เขียนปลั๊กอินสาธิตและวางไว้บน GitHub: T5 AJAX บรรณาธิการ
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
หลังจากดิ้นรนกับมันพบวิธีแก้ปัญหาหนึ่งบรรทัดที่ทำงานในการโทรกลับเพิ่ม:
tinymce.execCommand( 'mceAddEditor', true, element.id );
ไม่รู้เลยว่าทำไมฉันถึงหาเอกสารใน tinymce ไม่เจอ