对于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_horizontal: “”, 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);
答案 0 :(得分:0)
好的,那我想我知道为什么你的编辑内容没有得到保存。
你需要调用tinyMCE.triggerSave();
这会将编辑器内容写入他们创建的html元素中。 tinymce编辑器由iframe组成,只在html元素和iframe之间移动内容。
答案 1 :(得分:0)
使用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的默认过滤器