我目前正在编写wordpress中的前端编辑 . 结果应该是使用wordpress帖子进行类似evernote的编辑 .
一个主要问题是结合编辑器的必要动态(DOM(已解决)和Get(已解决)和Set内容的转换) .
Wordpress数据库存储没有段落的标记,并在交付时添加它们 . 当你最初在php中设置tinymce内容时
wp_editor( $content, $editor_id,$settings );
内容在textarea中写入(没有段落),tinymce在init上删除它并在init上执行一些PROCESSING并将其写入可视化编辑器 .
要动态设置我从wordpress数据库中获取的内容
tinyMCE.get(editor_id).setContent(content);
但不幸的是,这似乎绕过了对tinymce init进行的处理,导致断行和段落丢失 .
我目前的解决方法是将内容设置为wordpress到worpress文本编辑器,然后切换回可视编辑器,因为这似乎触发了break和段落的处理:
jQuery( "#myeditor-html" ).trigger( "click" );
jQuery('#textarea_id').val(content);
jQuery( "#myeditor-tmce" ).trigger( "click" );
我真的不喜欢这个解决方案,因为
如果你喜欢你的视觉内容,
-
Wordpress不建议切换
-
我想稍后禁用'quicktags'文本编辑器
我的编码技巧不足以读取tinymce的初始化代码,我也无法找到 jQuery( "#myeditor-tmce" ).trigger( "click" )
上的wordpress .
有人有同样的问题:
tinymce setContent removes new lines
但是这个解决方案是如此基本,以至于它与任何扩展标记(例如列表)崩溃 .
你能帮我找到一个优雅的代码来填充wp数据库内容,这意味着找出上面提到的PROCESSING吗?
1 回答
您是否尝试在php后端使用
wpautop
然后尝试根据这些值设置内容?删除/删除换行符可能是:
\n
(Linux),\r
(Mac),\r\n
(Windows)等 .https://codex.wordpress.org/Function_Reference/wpautop