2017-07-18 42 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

    嗨,清單我已經用我的代碼將你的插件的代碼編輯到我的本地設置。它適用於我。 –