2016-11-20 38 views
2

我很難在wordpress定製程序中使小小的mce編輯器工作。在定製程序中排隊tinymce編輯器

它看起來像從我的WP_Customize_Control擴展中調用「wp_editor」不會觸發加載定製程序中的TinyMCE腳本。

我試圖加載它們手動像這個答案在這裏:https://wordpress.stackexchange.com/questions/175307/tinymce-is-not-defined-when-not-using-wp-editor

,並試圖與wp_enqueue_script('tiny-mce'),但無濟於事。

這裏是我的渲染方法,沒有什麼特別的:

public function render_content() { 

     ?> 
     <label> 
      <span class="customize-control-title"><?php echo esc_html($this->label); ?></span> 
      <?php 
      $settings = array(
       'media_buttons' => false, 
       'quicktags' => false, 
       'teeny' => true 
      ); 

      wp_editor($this->value(), $this->id, $settings); 
      ?> 
     </label> 
     <?php 
    } 

如何應該這樣做的權利有什麼建議?

+0

發現這個,它看起來像它可能是因爲定製器中的手風琴正在移動:https://core.trac.wordpress.org/ticket/19173 –

回答

0

好的,發現一個解決方案,但在定製器中使用wp_editor意味着打開潘多拉的盒子。

創建編輯器之前添加do_action('admin_print_footer_scripts');

do_action('admin_print_footer_scripts'); 
wp_editor($this->value(), $this->id, $settings); 

將有TinyMCE的得到呈現。然而,仍然存在的問題是:在格式文本框

  • 更新保存到相應的textarea的,但是像「改變」或「KEYUP」的wp.customize是看對做postMessage的是事件不是由豐富的編輯器觸發,而只是直接更改textarea。
  • 由於上述原因,「保存」按鈕不會啓用。
  • 人工觸發「改變」和「KEYUP」關於textarea的事件沒有被抓到wp.customize,因此,在預覽區域的更新回調不叫
  • 每隔幾個定製加載TinyMCE的不會是完全呈現,可能是由於管理腳本加載

因此,這個話題我意識到wp_editor尚未準備好要在與帖子編輯等領域可靠地使用經過多次挖掘的方式。

1

我設法使它工作。在workdpress.stackexchange上查看我的答案,並附上確鑿的代碼示例。

p.s.我也訴諸於do_action('admin_print_footer_scripts')這顯然是一個骯髒的黑客,因爲它包括一堆其他不必要的腳本在定製頁面上,但沒有訣竅等待更優雅的解決方案..