javascript - 为什么自定义元素会破坏 WordPress 中的 TinyMCE?

标签 javascript wordpress tinymce

背景

我正在努力扩展 WordPress 中的可视化编辑器,即 TinyMCE:

enter image description here

我正在使用以下结构:

<section>
    <controls></controls>
    <content>
        <column class="one-third">
        </column>
        <column class="two-thirds">
        </column>
    </content>
</section>

问题

问题是,当我尝试将文本从 Paragraph 更改为 Header 时,没有任何反应:

enter image description here

问题原因

我已将问题追溯到使用自定义元素。当我更改代码以使用此结构时,问题就消失了:

<section>
    <controls></controls>
    <article>
        <div class="one-third">
        </div>
        <div class="two-thirds">
        </div>
    </article>
</section>

尝试的解决方案

我尝试将 columncontent 添加到 extended_valid_elementscustom_elements 列表,这已经零影响。

$init['custom_elements'] = 'content[*],column[*]';
$init['extended_valid_elements'] = 'content[*],column[*]';

问题

是否有任何事情立即跳出来表明我做错了?有没有办法解决这个问题,或者强制 TinyMCE 将我的自定义元素视为有效?

最佳答案

问题

custom_elements声明中,您使用了content[*],column[*]而不是content,column。虽然 extended_valid_elements 确实需要声明属性,但 custom_elements 则不需要。

根据 TinyMCE 文档:https://www.tinymce.com/docs/configure/content-filtering/#custom_elements

解决方案:

更改此:

$init['custom_elements'] = 'content[*],column[*]';
$init['extended_valid_elements'] = 'content[*],column[*]';

对此:

$init['custom_elements'] = 'content,column';

编辑

请注意,逗号分隔列表中不得包含空格,这一点至关重要。

'内容,列'; <--- 有效。

'内容,列'; <--- 不起作用。

关于javascript - 为什么自定义元素会破坏 WordPress 中的 TinyMCE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39109472/

相关文章:

PHP 7.2 更新 : Warning Declaration of DropDown in the header

php - 我想在 wordpress 中制作一个弹出窗口?

JavaScript 创建可点击的 href

javascript - Tinymce 工具栏配置

javascript - 有什么方法可以从浏览器开发控制台获取我的不和谐 token ?

javascript - 如何在 jquery 中检索下拉列表的元素并使用 ajax 将其发送到 ASP.Net 中的 MVC Controller ?

javascript - <li> 中的 <ul> 有时不会删除列表样式的图形(主要在 Bootstrap 下拉菜单中注意到)

javascript - 如何从javascript中的对象中删除时间?

css - 如何在 TinyMCE 中制作带有 float 按钮的流畅工具栏?

tinymce - 我如何在tinymce中包含base64图像