Artikel vom 30. März 2010

WordPress: Inhalt des Pre-Tags in HTML-Code umwandeln

WordPress

Mit der Vielfalt der auf dem Markt verfügbaren WordPress-Themes unterscheidet sich auch die Art der Einbindung eines nicht für die Ausführung, vielmehr zur Darstellung auf Blogseiten vorgesehenen Quelltext-Ausschnittes. Je nach Vorlieben und dem, welches der genannten HTML-Tags im Stylesheet festgelegt und mit Formatierungen versehen ist, werden Code-Fragmente im Fließtext wahlweise durch <code> oder <pre> deklariert. In manchen Fällen kombiniert der Blogger sogar beiden Tags.

Konvertierung der Sonderzeichen
Wem das Tag pre aus den Sichtpunkten der Ästhetik und Validität gerecht wird, der muss zwangsläufig dafür Sorge tragen, dass hinterlegte Code-Zeilen beim Parsen (sowohl Server- wie Browser-seitig) nicht als ausführbar interpretiert werden. HTML-Entities ist hier das Zauberwort.

Zwei Möglichkeiten stehen zur Wahl: Man erledigt die Maskierung der Daten händisch, beispielsweise mit Suchen&Ersetzen vor dem Einfügen in den Editor (HTML-Entities-Tabelle). Kluges Köpfchen lässt dagegen WordPress diese wiederkehrende Aufgabe brav erledigen.

Unzählige Methoden zur simplen Konvertierung des Codes zwischen gesetzten Pre- und/oder Code-Tags kursieren im Web. An dieser Stelle wird eine, auf den direkten Einsatz in WordPress-Blogs ausgerichtete, Lösung angeregt, die ab WordPress 2.8 ausgezeichnet die Umwandlung der Zeichen übernimmt.

PHP-Code für functions.php

function pre_esc_html($content) {
  return preg_replace_callback(
    '#(<pre.*?>)(.*?)(</pre>)#imsu',
    create_function(
      '$i',
      'return $i[1].esc_html($i[2]).$i[3];'
    ),
    $content
  );
}

add_filter(
  'the_content',
  'pre_esc_html'
);

Nützliche Links:

Sergej Müller

[Der Autor] Sergej Müller ist enthusiastischer Software Engineer mit Schwerpunkten Webentwicklung und WordPress. Seit 2007 programmiert und vertreibt er wpSEO, das weltberühmte und patentierte SEO-Plugin für WordPress-Blogs.

Soziale Werkzeuge

2 Kommentare zum Artikel

156 Tage zuvor | #1 Tom

Na wenn das kein Grund ist meine entsprechenden Plugins auf weitere Notwendigkeit zu überprüfen. Danke für den Tipp. ;)

Tom
152 Tage zuvor | #2 Luigi

Prima! Wieder ein plugin gespart. Habe noch das CSS angepasst für den tag “pre”, damit der Code nicht mein Design zerschießt.

Luigi

1 Verlinkung auf den Artikel

› Digital Life – Links des Tages vom 30.03.2010 » cens [...]

Kommentar verfassen