два редактора tinyMCE на одной странице

Я использовал этот метод для ввода первого редактора:

on functions.php:

function add_admin_theme_styles() { wp_enqueue_style('thickbox'); } add_action('admin_print_styles', 'add_admin_theme_styles'); wp_enqueue_script('jquery'); wp_enqueue_script('media-upload'); wp_enqueue_script('thickbox'); wp_enqueue_script('word-count'); wp_enqueue_script('post'); wp_enqueue_script('editor'); function fb_change_mce_buttons( $initArray ) { $initArray['theme_advanced_blockformats'] = 'p,address,pre,code,h3,h4,h5,h6'; $initArray['theme_advanced_disable'] = 'strikethrough'; $initArray['theme_advanced_buttons1'] = 'bold,italic,underline,bullist,justifyleft,justifycenter,justifyright,justifyfull,link,unlink'; $initArray['theme_advanced_buttons2'] = 'fontselect, fontsizeselect,forecolor,backcolor'; $initArray['width'] = '320px'; $initArray['theme_advanced_resizing'] = 'false'; return $initArray; } add_filter('tiny_mce_before_init', 'fb_change_mce_buttons'); add_filter( 'wp_default_editor', create_function('', 'return "tinymce";') ); 

и повторять редактор, в разделе страницы параметров:

 <?php the_editor($options['MoobAboutText'], "MoobAboutText", "", true); ?> 

Оно работало завораживающе. но когда я снова попытался использовать «the_editor», он получил массу.

Каков наилучший способ сделать это? знаешь что? забудьте о «лучшем» … дайте мне «рабочий метод», и он будет делать …

Solutions Collecting From Web of "два редактора tinyMCE на одной странице"

Конечно, это было нелегко, но вот оно.

(1) Я не мог заставить медиа-кнопку работать каким-либо другим способом с редакторами, исключая медиа-кнопки от одного из редакторов, но не от всех из них, поэтому мне пришлось использовать the_editor ();

JS конфликтует при реализации множественного экземпляра tinyMCE с помощью the_editor (); при попытке реализовать больше: the_editor (); вы увидите, что вкладки «HTML» и «VISUAL» противоречивы, и хотя я не получил глубоких знаний в JS, я говорю, что причиной является использование селекторов идентификаторов для «edButtonHTML» и «edButtonPreview» ".

в моем случае я не против взломать ядро, поэтому я просто удалил, в wp-includes / general-template.php содержимое между строками 1828-1831:

 <div id="quicktags"><?php wp_print_scripts( 'quicktags' ); ?> <script type="text/javascript"> edToolbar()</script> </div> 

(2) и спрятал кнопки «edButtonHTML» и «edButtonPreview» в функции functions.php (этот раздражающий WYSIWYG не позволяет мне показать вам полный «<» стиль «>» функции snipt, но вы получили снимок:

edButtonPreview {display: none}

edButtonHTML {display: none}

(3) И как последний удар, медиа-кнопки также противоречат друг другу, потому что здесь мы также используем ID в качестве селекторов:

 <div id="media-buttons" class="hide-if-no-js"> Upload/Insert <a href="media-upload.php?post_id=0&amp;type=image&amp;TB_iframe=1" id="add_image" class="thickbox" title="Add an Image"><img src="http://img.wordpressask.com/tinymce/media-button-image.gif?ver=20100531" alt="Add an Image" onclick="return false;"></a> <a href="media-upload.php?post_id=0&amp;type=video&amp;TB_iframe=1" id="add_video" class="thickbox" title="Add Video"><img src="http://img.wordpressask.com/tinymce/media-button-video.gif?ver=20100531" alt="Add Video" onclick="return false;"></a> <a href="media-upload.php?post_id=0&amp;type=audio&amp;TB_iframe=1" id="add_audio" class="thickbox" title="Add Audio"><img src="http://img.wordpressask.com/tinymce/media-button-music.gif?ver=20100531" alt="Add Audio" onclick="return false;"></a> <a href="media-upload.php?post_id=0&amp;TB_iframe=1" id="add_media" class="thickbox" title="Add Media"><img src="http://img.wordpressask.com/tinymce/media-button-other.gif?ver=20100531" alt="Add Media" onclick="return false;"></a> </div> 

Проблема заключается в том, что вы не фокусируетесь на редакторе щелчком, кнопка мультимедиа действует только на последний редактор. магия, чтобы решить это, добавив слушателя Jquery, который использует tinyMCE API для фокусировки на каждом из редакторов, когда вы их наводите. Первый аргумент «tinyMCE.execInstanceCommand» – это идентификатор редактора, AKA – идентификатор, который вы использовали в функциях the_editor ():

 <script type="text/javascript"> jQuery(document).ready(function($) { jQuery('#editor-one').mouseover(function() { tinyMCE.execInstanceCommand("MoobWelcomeText", "mceFocus"); }); jQuery('#editor-two').mouseover(function() { tinyMCE.execInstanceCommand("MoobWelcomeText2", "mceFocus"); }); jQuery('#editor-three').mouseover(function() { tinyMCE.execInstanceCommand("MoobWelcomeText3", "mceFocus"); }); }); 

Вот и все. скажи мне, как это происходит. кто-нибудь знает, как объявить ошибку в TRAC? я никогда не делал этого, и я думаю, что это ошибка, так как это не позволит разработчикам WordPress использовать более одного редактора tinyMCE, иначе … если я не пропущу что-то.