So deaktivieren Sie TinyMCE beim Entfernen von Span-Tags

10

Ich poste Word generiertes HTML über XMLRPC in WordPress. Bevor ich zu post.php gehe, wird das Format korrekt in der Datenbank beibehalten. TinyMCE übt seine Magie aus und ich verliere einige Formatierungsdetails.
Das Hauptproblem, das ich sehe, ist, dass <span>Tags mit Stilinformationen, die andere Elemente umgeben, entfernt werden. Ich habe überprüft, dass diese Tags tatsächlich von TinyMCE und nicht von Kses entfernt werden. Gibt es eine Möglichkeit, zu verhindern, dass TinyMCE den HTML-Code ändert? Ich habe versucht

add_filter('tiny_mce_before_init', 'tinymce_init');

function tinymce_init( $init ) {
    $init['extended_valid_elements'] .= ', span[style|id|nam|class|lang]';
$init['verify_html'] = false;
    return $init;
}

das hat nicht geholfen. Laut TinyMCE- Dokumentation ist "verify_html"

Diese Option aktiviert oder deaktiviert die Elementbereinigungsfunktion. Wenn Sie diese Option auf false setzen, werden alle Elementbereinigungen übersprungen, andere Bereinigungsfunktionen wie die URL-Konvertierung werden jedoch weiterhin ausgeführt.

ltfishie
quelle

Antworten:

6

Ich konnte die extended_valid_elementsOption im Einstellungsfeld für TinyMCE advanced nicht finden , habe aber Folgendes zu meiner functions.phpLösung hinzugefügt :

function override_mce_options($initArray) {
    $opts = '*[*]';
    $initArray['valid_elements'] = $opts;
    $initArray['extended_valid_elements'] = $opts;
    return $initArray;
} add_filter('tiny_mce_before_init', 'override_mce_options');

Quelle

Sim
quelle
4

Ich verwende fast immer das TinyMCE Advanced- Plugin - es gibt eine Administrationsseite (Einstellungen-> TinyMCE-Konfiguration), auf der Sie mit dieser extended_valid_elementsOption unterstützte Tags hinzufügen können . Fügen Sie einfach spanalle anderen Tags hinzu, die Sie nicht entfernen möchten, und genießen Sie sie!

SickHippie
quelle
Vielen Dank, TinyMCE Advanced macht genau das Gleiche wie mein Code oben, um extended_valid_elements hinzuzufügen. Aber ich werde es mit dem Plugin. Vielleicht habe ich irgendwo einen Fehler in meinem Code.
ltfishie
Installieren Sie es und probieren Sie es aus - wenn es funktioniert, ist das Problem Ihr Code. Wenn dies nicht der Fall ist, wird es auf Plugin- oder Themenebene von etwas anderem überschrieben.
SickHippie
2
Ich konnte in der neuesten Version von TinyMCE Advanced keinen Platz finden, um Elemente hinzuzufügen
Nicola Peluchetti
Das ist nicht überraschend, da dieser Beitrag 3 1/2 Jahre alt ist.
SickHippie