Michael Oeser - Fotografie, Film, Webdesign - Logo

Automatische Codeformatierungen in WordPress entfernen

Manchmal ist es erforderlich, Codebeispiele direkt in einem Artikel anzuzeigen, so wie ich es auch hier in diesem Beitrag mache. Die automatische Codeformatierung von WordPress ist dabei nicht immer hilfreich und so will man diese evtl. deaktivieren.

Natürlich gibt es auch für die Darstellung von Code eine Menge Plugins (auch ich benutze eins), aber manchmal will man eben auch mal ohne Plugin auskommen. Beim stöbern im Netz bin ich auf folgende Lösung gestoßen.

Im Prinzip schreiben wir nur folgende kleine Funktion in die functions.php und schaffen uns somit einen neuen Shortcode für die Ausgabe von unformatierten Codezeilen.

function my_codeformat($content) {
	$new_content = '';
	$pattern_full = '{(\[raw\].*?\[/raw\])}is';
	$pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
	$pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);

	foreach ($pieces as $piece) {
		if (preg_match($pattern_contents, $piece, $matches)) {
			$new_content .= $matches[1];
		} else {
			$new_content .= wptexturize(wpautop($piece));
		}
	}

	return $new_content;
}

remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');

add_filter('the_content', 'my_codeformat', 99);

Das Ganze wird dann ganz einfach im Text eines Artikels zwischen die Shortcode-Tags [raw] und [/raw] eingefügt.

[raw]Unformatierter Code[/raw]

Die Idee dazu stammt von TheBinaryPenguin