web-dev-qa-db-ger.com

Wie kann ich verhindern, dass TinyMCE meine HTML-Entitäten in Zeichen konvertiert?

Hier ist das Problem: Ich füge den HTML-Entity-Code für beispielsweise eine Service-Marke (℠) in die HTML-Ansicht des Editors ein. Sobald ich zur Registerkarte "Visual" wechsle, wird mein Entity-Code in ein tatsächliches Service-Mark-Zeichen (Ich vermute, das entsprechende UTF-8-Zeichen oder so etwas? Ich kenne es nicht aus Zeichencodierungen ... ). Ich möchte das nicht - ich möchte, dass es als Entitätsreferenz bleibt.

Gibt es eine Konfiguration, die ich ändern kann, um TinyMCE daran zu hindern, dies zu tun? Nach meinem Verständnis beim Lesen der Internets ist dies nicht das Standardverhalten - TinyMCE sollte eigentlich das Gegenteil tun und Zeichen in ihre Entitäten konvertieren. Ist dies etwas Besonderes für die WordPress-Version von TinyMCE?

4
MathSmath

Laut dieser Seite können Sie den Filter tiny_mce_before_init verwenden, sicherstellen, dass die Entitätskodierung auf named eingestellt ist, und dann dem Entitätsarray die Sonderzeichen hinzufügen, die Sie möchten.

5
fdsa

Danke, fdsa!

Für die Nachwelt ist hier der eigentliche Code, den ich verwendet habe. Es fügt dem Array zulässiger Einheiten Copyright, eingetragene Marke, Dienstleistungsmarke und Euro hinzu. Ich bin verwirrt, warum einige von ihnen nicht standardmäßig vorhanden sind, da sie wirklich häufig vorkommen. Aber auf jeden Fall funktioniert das:

// Custom configuration for TinyMCE
function wpsx_54398_configure_tiny_mce( $initArray ) {

    // Add some common entities to the default array (copy, reg, trade, service mark, euro)
    // The odd entires are the entity *number*, the even entries are the entity *name*. If the entity has no name,
    // use the number, prefixed with a hash (for example, the service mark is "8480,#8480").
    $initArray['entities'] = $initArray['entities'] . ',169,copy,174,reg,8482,trade,8480,#8480,8364,euro';

    return $initArray;

}
add_filter('tiny_mce_before_init', 'wpsx_54398_configure_tiny_mce');
4
MathSmath