2017-07-18 64 views
0

我有一个Wordpress plugin,它允许用户标记一个项目符号列表,然后添加一个短代码。不幸的是,当用户选择项目符号列表时,第一个UL没有被选中,因此他们最终选择了一个奇怪的选项。最终的代码应该是:Wordpress - Sanitize AROUND shortcode

[checklist-box title="Hello"] 
<ul> 
    <li>xxxx</li> 
    <li>yyyy</li> 
    <li>zzz</li> 
</ul> 
[/checklist-box] 

,而是结束了,就像这样:

<ul> 
    <li>[checklist-box title="Hello"] 
<ul> 
    <li>xxxx</li> 
    <li>yyyy</li> 
    <li>zzz</li> 
</ul> 
[/checklist-box]</li> 
</ul> 

看起来太可怕了。

澄清:我需要检测单盒]简码包包括

    这是用于包装的子弹TinyMCE的代码中的整个列表:

    onsubmit: function(e) { 
         var selected_text = editor.selection.getContent(); 
         shortcode = '[checklist-box title="' + e.data.title + '"]' + selected_text + '[/checklist-box]'; 
         editor.execCommand('mceInsertContent', 0, shortcode); 
    } 
    

    回答

    1

    你可以试试这个码, 与

    onsubmit: function(e) { 
            var wholeText = editor.getContent(); 
            var selected_text = editor.selection.getContent(); 
    
            shortcode = '[checklist-box title="' + e.data.title + '" extraTitle="' + e.data.extraTitle + '" extraUrl="' + e.data.extraUrl + '"]' + selected_text + '[/checklist-box]'; 
    
            var main = wholeText.replace(selected_text,shortcode); 
            editor.execCommand('mceSetContent', 0, main); 
           } 
    

    更换你的onsubmit代码然后让我知道结果。

    +0

    对不起,但这没有任何区别。生成相同的代码。 – checklist

    +0

    嗨,清单我已经用我的代码将你的插件的代码编辑到我的本地设置。它适用于我。 –