經過更長時間的調查後,我想我找到了它。採取
步驟:
首先我檢查,如果CKEditor的所有支持HTML5標籤,以及它的作用。所以它不應該剝奪它們或者根本不會改變。在發佈時,<main class="someClass">
被<p> </p>
包圍 - 如果main
被識別爲內嵌元素而不是第一塊,則可能發生這種情況。我挖了CKEDITOR.dtd
,結果發現main
存在,它是一個塊元素。應該沒問題。
要檢查它是CKEditor問題還是WordPress,我檢查了寫入數據庫的內容以及CKEditor從中獲取的內容。該文章/頁面的內容是在下面的例子中(唯一的區別是新線人物 - 如CKEditor的格式的代碼):
<main class="someClass">
<p>There should be only 2 paragraphs inside the</p>
<pre><main class="someClass"></main></pre>
<p>element.</p>
</main>
但返回的代碼編輯爲不同
<p><main class="someClass"></p>
<p>There should be only 3 paragraphs inside the</p>
<pre><main class="someClass"></main></pre>
<p>element.</p>
<p></main></p>
該<main class="someClass">
與<p></p>
包裹,然後CKEditor的是圍繞固定塊元素的段落,結果是你發佈:
<p> </p>
<main class='someClass'>
<p> </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
元件。
所以,你有一些選擇:
- 在所有(不推薦)禁用wpautop
- 編輯WordPress的來源和這個元素添加到列表中。然後在每次WordPress升級後記住它。
或報告後,創建補丁/拉請求,並等待修復,然後更新沒有任何風險;)
你用什麼爲WordPress和WordPress自身)的版本(CKEditor的? 我剛剛使用WordPress 4.5.2和CKEditor for WordPress 4.5.3.3檢查了您的代碼,切換到/從Visual/HTML切換後沒有額外的'
&nbsp
',CKEditor內部都沒有顯示Source。 – Vokiel我有和你寫的相同的版本。我認爲你沒有注意到我對標籤「主」的說法。所有其他標籤正常寫入。你可以在你的例子中檢查它。如果沒有任何東西 - 請帶我進入。當然,如果可以的話。 –
你有沒有安裝任何額外的插件?還是其他一些配置更改? 我剛剛檢查裏面的內容,而不是'< - somecontnet! - >'評論,如:'''<主類= 「SomeClass的」> \t
\t \t也許有同一個問題一些內容 \t
\t\t \t \t Another paragraph \t \t
\t