Tinymce-如何在实时快捷代码呈现之前或之后挂钩?

时间:2015-09-12 作者:Marcello Colacino

当编辑帖子页面加载到WordPress admin中时,我启动了一个js进程,该进程会更改TinyMCE编辑器的内容。

最近我遇到了WordPresslive shortcode previews 这破坏了我的代码,因为它们也改变了TinyMCE编辑器的内容。这种增强的短代码使用wp。mce。视图最近在WP 4.2上引入并重构了api。这里还有更多details about last changes.

有没有办法钩住我的进程before (或after) WordPress live shortcode预览渲染?

1 个回复
SO网友:Alexandre Germain

嗯,是的,你可以这样做:

//replace live edited content to display html
editor.on(\'BeforeSetcontent\', function(event){
    event.content = tinymce_to_html( event.content );
});

//Transform your html content to raw content
editor.on(\'GetContent\', function(event){
    event.content = html_to_tinymce( event.content );
});
让我们解释一下:

在后台,tinymce使用纯文本编辑器来存储内容、在表单中使用等。但您看到的是一个HTML包装器,它读取textarea的内容以设置HTML视图。如果插入特殊内容(如短代码),请插入纯文本短代码,并使用tinymce_to_html 从中推断出相应的HTML。

我不记得确切的原因(我很久以前写过这段代码),但是html_to_tinymce 应与tinymce_to_html, 并且在切换回时保持内容干净很重要&;使用纯文本编辑器或将其保存到数据库中。

希望有帮助,&;干杯

相关推荐

WP管理员缺少图标、大量的JavaScript错误,但仅当SCRIPT_DEBUG为FALSE时

我可以访问一台Linux/Apache服务器,在那里我试图部署WordPress。为了避免这个错误,我用默认的2017主题和所有禁用的插件对其进行了测试。当我以管理员身份登录到任何wp admin页面时,左侧导航中的大多数图标都会丢失,选中的复选框没有任何复选框(例如),浏览器控制台会充满JavaScript错误。例如,在仪表板页面上,没有任何图标可见,错误控制台的内容如下:Uncaught TypeError: a.widget is not a function at load-scripts