(XML-)Code in einem WordPress Artikel darstellen

Ab und an poste ich ein Problem, was ich aktuell mit SharePoint oder anderen Produkten habe, bei denen u.a. XML Code genutzt wird. Kopiert man jetzt stumpf den XML-Code rein, wird dieser abgeschnitten.
Ursache hierfür ist die Datei kses.php in dem Verzeichnis wp-includes. In diesem wird u.a. festgelegt, welche tags und Attribute des tags erlaubt sind und wie mit tags umgegangen wird, die nicht erlaubt sind.
Beispiel (auszug aus der kses.php):

'a' => array(
'class' => true,
'href' => true,
'id' => true,
'title' => true,
'rel' => true,
'rev' => true,
'name' => true,
'target' => true,

),

Jetzt könnte man auf die Idee kommen, diese Datei um die gewünschten tags zu erweitern. Dies würde ich aus folgenden Gründen aber nicht machen. Zum einen handelt es sich bei der Liste ja um eine Whitelist; sprich man muss jedes tag dort eintragen, was man erlauben möchte, die Liste wird schnell ausufern und unübersichtlich werden. Zum anderen gibt es ja Gründe, warum manch ein tag per default nicht erlaubt wird: Sicherheit. Schnell lassen sich dann Codeschnipsel einfügen, die womöglich einen Leser der Seite kompromitieren oder das System als solches. Klar, der einzige, der in diesem Blog schreibt, bin ich, und ich würde ja keine “gefährlichen” tags nutzen, aber ich gehe davon aus, dass diese Liste auch für Kommentare gilt und die kann theoretisch jeder hier einstellen.

Und jetzt?

Es gibt da eine elegantere Lösung: Auf der Seite http://www.opinionatedgeek.com/dotnet/tools/htmlencode/encode.aspx kann man seinen Code encoden lassen. Das Tool geht über den Code und ersetzt unter anderem die < und > Zeichen, die einen tag kennzeichnen und ersetzt diese mit dem korrespondierenden HTML-Entity. Klar könnte man das auch händisch machen, aber bei längeren Codeschnipseln ist diese Methode sehr angenehm

Zur Verdeutlichung:

So sieht der Code aus, wenn man ihn durch die Seite oben jagt:

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="root">
<xsd:complexType>
<xsd:all>
<xsd:element ref="Auswahl" minOccurs="0" maxOccurs="1"></xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:element name="Auswahl">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="SharePointListChoice_RW" minOccurs="0" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SharePointListChoice_RW">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="DisplayName"></xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:attribute name="DisplayName" type="xsd:string"></xsd:attribute>
</xsd:schema>

Und so, wenn man ihn einfach so in den Editor kopiert:



























  1 comment for “(XML-)Code in einem WordPress Artikel darstellen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.