为什么Custom Elements会破坏WordPress中的TinyMCE?

时间:2016-08-23 19:43:44

标签: 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将我的自定义元素视为有效?

1 个答案:

答案 0 :(得分:1)

问题

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';

修改

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

'content,column';&lt; ---有效。

'content, column';&lt; --- 不起作用。