元框中的TinyMCE编辑器,不保存P标签

时间:2011-05-10 20:38:36

标签: wordpress tinymce wysiwyg meta-boxes

对于autop函数似乎在我不想要的时候给我的所有地狱,我有几个带有tinyMCE textareas的自定义元框。现在他们没有保存

标签..他们似乎没有保存其他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-&gt; the_name()东西

  

功能   my_admin_print_footer_scripts(){?&gt;

     

/ *         

/ * *多个TinyMCE设置* /
  settings = {     模式:“specific_textareas”     宽度:“100%”,主题:“高级”,     皮肤:“wp_theme”     theme_advanced_buttons1: “粗体,斜体,删除线,下划线,|,bullist,numlist,BLOCKQUOTE,|,证明左边,中间对齐,证明右边,|,链接,取消链接,|,拼写检查”,     theme_advanced_buttons2: “formatselect,XXXforecolor,|,pastetext,pasteword,removeformat,|,减少缩进,缩进,|,撤消,重做,|,代码”,     theme_advanced_buttons3: “”,     theme_advanced_buttons4: “”,     语言:“恩”,     spellchecker_languages: “+英语= EN,丹麦= DA,荷兰NL =,=芬兰科幻,法语= FR,德国DE =,意大利=它,波兰语= PL,葡萄牙语= PT,西班牙语= ES,瑞典语= SV”     theme_advanced_toolbar_location: “顶”,     theme_advanced_toolbar_align: “左”,     theme_advanced_statusbar_location:“bottom”,theme_advanced_resizing:“1”,     theme_advanced_resize_horizo​​ntal: “”,     DIALOG_TYPE: “莫代尔”,     relative_urls: “”,     remove_script_host: “”,     convert_urls: “”,     apply_source_formatting: “”,     remove_linebreaks: “1”     gecko_spellcheck: “1”     实体: “38安培,60,LT,62,GT”,     accessibility_focus: “1”     tabfocus_elements:“主要出版 - 行动”,     media_strict: “”,   paste_remove_styles: “1”     paste_remove_spans: “1”     paste_strip_class_attributes: “所有”,     wpeditimage_disable_captions: “”,     插件: “野生动物园,inlinepopups,拼写检查,粘贴,WordPress的,tabfocus”     };

  jQuery(document).ready(function($) {


          var $ta, id, mceID;


          $('.customEditor textarea').each(function(i){
              $ta = $(this);
              id = $ta.attr('id');

              if (!id){
                  id = 'customEditor-' + i;
                  $ta.attr('id',id);
              }
              tinyMCE.settings = settings;
              tinyMCE.execCommand('mceAddControl',
     

false,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 }
     

// important:注意99的优先级,   js需要放在后面   tinymce负载   ADD_ACTION( 'admin_print_footer_scripts', 'my_admin_print_footer_scripts',99);

3 个答案:

答案 0 :(得分:0)

好的,那我想我知道为什么你的编辑内容没有得到保存。 你需要调用tinyMCE.triggerSave();这会将编辑器内容写入他们创建的html元素中。 tinymce编辑器由iframe组成,只在html元素和iframe之间移动内容。

答案 1 :(得分:0)

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

使用save_post挂钩在TinyMCE'd字段上手动运行wpautop()。

答案 2 :(得分:0)

我最终解决了这个问题。事实证明,WP不会将p标签保存到编辑器中。但是,使用某些WP过滤器将换行符等转换为p标签。所以解决方案是改变我的文本框的组合,如下所示:

<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的默认过滤器