2016-05-10 6 views
0

ich so html habe:CKEditor für Wordpress entfernen kann nicht <p> </p>

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

nach der Post Aktualisierung ich sehe:

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

    <!-- somecontent --> 

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

Was kann ich tun? Was ist das? Ich lese viele Posts zu diesem Problem, aber ich denke, ich verstehe nicht nur einen: Wo muss ich alle Regeln einfügen? Wie

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

oder sonst? Denn dann habe ich in ckeditor.config.js eingefügt Ich sehe keine Änderungen. Es setzt fort, zu meinem HTML

<p>&nbsp</p> 

einzufügen Kann mir jemand helfen? Ich werde sehr dankbar sein.

+1

Welche Versionen (CKEditor für Wordpress und Wordpress selbst) verwenden Sie? Ich habe gerade Ihren Code mit WordPress 4.5.2 und CKEditor für WordPress 4.5.3.3 überprüft und es gibt keine zusätzliche '

& nbsp;

' nach dem Wechsel zu/von Visual/HTML, keine Source in CKEditor. – Vokiel

+0

Ich habe die gleichen Versionen, die Sie geschrieben haben. Ich denke, du hast nicht bemerkt, dass ich über den Tag "main" gesagt habe. Alle anderen Tags schreiben normal. Sie können es in Ihrem Beispiel überprüfen. Wenn du nichts hast - nimm mir deinen Zugang. Sicher, wenn du kannst. –

+1

Haben Sie zusätzliche Plugins installiert? Oder einige andere Konfigurationsänderungen? Ich habe gerade mit Inhalt nach innen, statt '' geprüft Kommentar, wie: '' ' \t

\t \t Vielleicht gibt es ein Problem mit dem ist einige Inhalte \t

\t
\t \t

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

\t
'' ' Und es funktionierte gut - keine'

 

'eingefügt. – Vokiel

Antwort

1

Nach längerer Untersuchung denke ich, dass ich es gefunden habe.

Schritte unternommen:

Zunächst überprüfte ich, wenn CKEditor überhaupt HTML5-Tags unterstützt, und es tut. Also sollte es sie nicht strippen oder überhaupt verändern. Wie Sie geschrieben haben, wurde die <main class="someClass"> mit <p>&nbsp;</p> umgeben - dies könnte passieren, wenn main als Inline-Element statt Block eins erkannt wurde. Ich graben in CKEDITOR.dtd und es stellte sich heraus, dass main existiert und es ist ein Blockelement. Es sollte in Ordnung sein.

Um zu überprüfen, ob es sich um ein CKEditor-Problem oder um WordPress handelt, habe ich überprüft, was in die Datenbank geschrieben wurde und was der CKEditor davon bekommen hat. Die Post/Seiteninhalt war wie im Beispiel unten (der einzige Unterschied die neuen Linien Zeichen war - wie CKEditor den Code-Formate):

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

Aber der Code zurückgegeben für die Bearbeitung anders war

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

die <main class="someClass"> mit <p></p> gewickelt war, dann CKEditor war diese Absätze um den Block elementfixierende und das Ergebnis war, wie Sie auf dem Laufenden:

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

Nach s hort Debuggen von Wordpress Kern fand ich den Ort, an dem diese Absätze hinzugefügt wurden - Funktion wpautop innerhalb formatting.php https://developer.wordpress.org/reference/functions/wpautop/

genauer zu sein, die 469 line die alle Elemente Block beschreibt:

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

und es gibt keine main Element.

So haben Sie einige Optionen:

  1. Disable wpautop überhaupt (nicht empfohlen)
  2. bearbeiten Wordpress Quellen und fügen Sie dieses Element der Liste. Dann erinnere dich daran nach jedem WordPress-Upgrade.

Oder melden Sie es, erstellen Patch/Nachfrage ziehen und für das Update warten, dann ohne Risiko aktualisieren;)

Verwandte Themen