Редакторы TinyMCE в мета-боксах, без сохранения тега P - PullRequest
1 голос
/ 11 мая 2011

несмотря на весь ад, который мне дает функция autop, когда я этого не хочу, у меня есть несколько пользовательских мета-блоков с текстовыми областями tinyMCE.и теперь они не сохраняют

теги .. они вроде бы в порядке с сохранением другой разметки html.

мой html для одной из моих коробок выглядит так:

<div class="customEditor">
    <div class="custom_upload_buttons" class="hide-if-no-js"><?php do_action( 'media_buttons' ); ?></div>
    <?php $mb->the_field('below_content'); ?>
    <textarea rows="10" cols="50" name="<?php $mb->the_name(); ?>" rows="3"><?php $mb->the_value(); ?></textarea>
</div>

все имена и прочее обрабатываются WPAlchemy, поэтому странная функция $ mb-> the_name () stuff

my_admin_print_footer_scripts () {?>

/ *

/ ** Несколько настроек TinyMCE * /
settings = {mode: "specific_textareas", ширина: "100%", theme: "advanced", skin: "wp_theme", theme_advanced_buttons1: "полужирный, курсив, зачеркнутый, подчеркивание, |,bullist, numlist, blockquote, |, justifyleft, justifycenter, justifyright, |, link, unlink, |, spellchecker ", theme_advanced_buttons2:" formatselect, XXXforecolor, |, pastetext, pasteword, removeformat, |, outdent, indent, |, undo,redo, |, code ", theme_advanced_buttons3:" ", theme_advanced_buttons4:" ", language:" en ", spellchecker_languages:" + английский = en, датский = da, голландский = nl, финский = fi, французский = fr, немецкий = de, Итальянский = это, польский = pl, португальский = pt, испанский = es, шведский = sv ", theme_advanced_toolbar_location:" вp ", theme_advanced_toolbar_align:" left ", theme_advanced_statusbar_location:" bottom ", theme_advanced_resizing:" 1 ", theme_advanced_resize_horizontal:" ", dialog_type:" modal ", относительные_urls:" ", remove_script_host:" ",« apply_host: "», «apply_ls::«", remove_linebreaks:" 1 ", gecko_spellcheck:" 1 ", объекты:" 38, amp, 60, lt, 62, gt ", accessibility_focus:" 1 ", tabfocus_elements:" основные действия публикации ", media_strict:" ", paste_remove_styles: "1", paste_remove_spans: "1", paste_strip_class_attributes: "all", wpeditimage_disable_captions: "", плагины: "safari, inlinepopups, проверка орфографии, вставка, wordpress, tabfocus"};

* 1015false, id);});
          $('.custom_upload_buttons a').each(function() {
              $(this).click(function() {
                  mceID = $(this).parent().next('textarea').attr('id');
                  window.send_to_editor = window.send_to_editor_clone;
              });

              window.send_to_editor_clone = function(html){
                  tinyMCE.execInstanceCommand(mceID, 'mceInsertContent', false, html);
                  tb_remove();
              }
          });




      });     /* ]]> */</script><?php }

// важный: обратите внимание на приоритет 99, js должен быть помещен после того, как tinymce загружает add_action ('admin_print_footer_scripts', 'my_admin_print_footer_scripts', 99);

Ответы [ 3 ]

0 голосов
/ 25 мая 2011

от: https://wordpress.stackexchange.com/questions/15394/extra-tinymce-editor-strips-p-and-br-tags/17951#17951

Используйте ловушку save_post для ручного запуска wpautop () в полях TinyMCE'd.

0 голосов
/ 05 июля 2011

я все разобрался со временем.получается, что WP НЕ сохраняет p-теги в редакторе.но разрывы строк и тому подобное преобразуются в теги p с некоторыми фильтрами WP.таким образом, решение было комбинацией изменения моего текстового поля, чтобы быть похожим на:

<textarea class="wysiwyg" rows="10" cols="50" name="<?php $mb->the_name(); ?>" rows="3"><?php echo wp_richedit_pre($mb->get_the_value()); ?></textarea>

и запуск wpautop (и несколько других фильтров по умолчанию the_content на выходе

0 голосов
/ 12 мая 2011

Хорошо, тогда, я думаю, я знаю, почему содержимое вашего редактора не сохраняется. Вам нужно вызвать tinyMCE.triggerSave();, чтобы записать содержимое редактора в HTML-элементы, для которых они были созданы. Редактор tinymce состоит из iframe и перемещает содержимое только между элементом html и iframe.

...