2016-05-10 54 views
0

我有這樣的HTML:CKEDITOR爲WordPress無法刪除<p> </p>

<main class='someClass'> 
    <!-- somecontent --> 
</main> 

更新後之後,我看到:

<p>&nbsp</p> 
<main class='someClass'> 
<p>&nbsp</p> 

    <!-- somecontent --> 

<p>&nbsp</p> 
</main> 
<p>&nbsp</p> 

我能做些什麼?這是什麼? 我讀了很多關於這個問題的文章,但是,我認爲,我不明白只有一個:我在哪裏必須插入所有的規則?如

config.allowedContent = true; 
config.extraAllowedContent = 'main'; 

否則呢?因爲然後我插入ckeditor.config.js我看不出有任何更改。它繼續插入到我的HTML

<p>&nbsp</p> 

有人能幫助我嗎?我會非常感謝。

+1

你用什麼爲WordPress和WordPress自身)的版本(CKEditor的? 我剛剛使用WordPress 4.5.2和CKEditor for WordPress 4.5.3.3檢查了您的代碼,切換到/從Visual/HTML切換後沒有額外的'

&nbsp

',CKEditor內部都沒有顯示Source。 – Vokiel

+0

我有和你寫的相同的版本。我認爲你沒有注意到我對標籤「主」的說法。所有其他標籤正常寫入。你可以在你的例子中檢查它。如果沒有任何東西 - 請帶我進入。當然,如果可以的話。 –

+1

你有沒有安裝任何額外的插件?還是其他一些配置更改? 我剛剛檢查裏面的內容,而不是'< - somecontnet! - >'評論,如:'''<主類= 「SomeClass的」> \t

\t \t也許有同一個問題一些內容 \t

\t
\t \t

\t \t \t Another paragraph \t \t

\t
''' 和它的工作就好了 - 沒有'

 

'插入。 – Vokiel

回答

1

經過更長時間的調查後,我想我找到了它。採取

步驟:

首先我檢查,如果CKEditor的所有支持HTML5標籤,以及它的作用。所以它不應該剝奪它們或者根本不會改變。在發佈時,<main class="someClass"><p>&nbsp;</p>包圍 - 如果main被識別爲內嵌元素而不是第一塊,則可能發生這種情況。我挖了CKEDITOR.dtd,結果發現main存在,它是一個塊元素。應該沒問題。

要檢查它是CKEditor問題還是WordPress,我檢查了寫入數據庫的內容以及CKEditor從中獲取的內容。該文章/頁面的內容是在下面的例子中(唯一的區別是新線人物 - 如CKEditor的格式的代碼):

<main class="someClass"> 
    <p>There should be only 2 paragraphs inside the</p> 
    <pre>&lt;main class=&quot;someClass&quot;&gt;&lt;/main&gt;</pre> 
    <p>element.</p> 
</main> 

但返回的代碼編輯爲不同

<p><main class="someClass"></p> 
<p>There should be only 3 paragraphs inside the</p> 
<pre>&lt;main class=&quot;someClass&quot;&gt;&lt;/main&gt;</pre> 
<p>element.</p> 
<p></main></p> 

<main class="someClass"><p></p>包裹,然後CKEditor的是圍繞固定塊元素的段落,結果是你發佈:

<p>&nbsp</p> 
<main class='someClass'> 
<p>&nbsp</p> 

年代後WordPress的芯的園藝調試我發現其中加入這些段落的地方 - 內formatting.php https://developer.wordpress.org/reference/functions/wpautop/

功能wpautop爲了更精確,它描述了所有的塊元素的469 line

$allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)'; 

並且沒有main元件。

所以,你有一些選擇:

  1. 在所有(不推薦)禁用wpautop
  2. 編輯WordPress的來源和這個元素添加到列表中。然後在每次WordPress升級後記住它。

或報告後,創建補丁/拉請求,並等待修復,然後更新沒有任何風險;)