Tôi đã yêu cầu nhiều mã hơn để làm cho nó hoạt động và cũng gặp lỗi javascript: Deprecated TinyMCE API call: <target>.onKeyUp.add(..)
Điều này là do nâng cấp wordpress từ 3.x lên 4. Vì vậy tôi phải làm clear my browser cache
trước.
Đầu tiên tôi đã thêm một hàm gọi lại vào bộ lọc teh wp tiny_mce_before_init
trong tệp tin.php của tôi, điều này cho phép tôi thêm chức năng gọi lại js sẽ được kích hoạt khi trình soạn thảo được khởi chạy:
add_filter( 'tiny_mce_before_init', array( $obj, 'filter_cb_mce_before_init' ) );
/**
* Filter cb to add event listeners to tinymce editor.
* @param array $init An array of setup js functions as strings.
* @return array Returns new array of js function strings.
*/
function filter_cb_mce_before_init( array $init ) {
$init['setup'] = "function(ed){
if(get_tinymce_content) //not required, I use it as flag to check if on correct page
ed.on('change', function(){ get_tinymce_content() });
}";
return $init;
}
Tiếp theo chức năng javascript để làm những gì từng muốn với nội dung khi nó thay đổi. Thêm javascript này bằng wp_enqueue_scripts vào trang bạn muốn.
/**
* Get the content of the tinyMCE editor.
* @link http://wordpress.stackexchange.com/questions/42652/how-to-get-the-input-of-a-tinymce-editor-when-using-on-the-front-end
* @return {string} Returns the content
*/
function get_tinymce_content(){
//change to name of editor set in wp_editor()
var editorID = 'my_editor_id';
if (jQuery('#wp-'+editorID+'-wrap').hasClass("tmce-active"))
var content = tinyMCE.get(editorID).getContent({format : 'raw'});
else
var content = jQuery('#'+editorID).val();
console.log(content);
}
Mã này hoạt động khi tôi sử dụng cách sau để in trình soạn thảo sang bất kỳ trang nào:
<?php wp_editor( @$event->description, 'my_editor_id', array(
'media_buttons' => false,
'textarea_name' => 'data[description]',
'quicktags' => array("buttons"=>"link,img,close"),
) ); ?>
val()