WP-Syntax ist eine tolle Extension für WordPress, darauf habe ich ja schon in dem Artikel Was nicht alles mit WordPress möglich ist… hingwiesen.

Das ganze hatte nur einen hässlichen Nachteil. Wenn man < > ein oder & im Code verwendete, dann hat der Wysiwyg Editor natürlich schnell mal &lt;, &gt; und &amp; daraus gemacht und das macht den Code natürlich unlesbar.
Das bedeute also immer folgende vorgehensweise:

  1. Artikel schreiben
  2. Code einbauen und formatieren
  3. keine Änderung mehr machen
  4. Wenn Änderungen, dann alle &lt;, &gt; und &amp; im Code wieder zurück tauschen in <, > und &.

Nun es geht einfacher. Einach wp_syntax.php ändern so, dass immer die Sequenzen &lt;, &gt; und &amp; eben wieder  in  <, > und & umgewandelt werden. Dazu muss man einfach nur die Funktion wp_syntax_code_trim um die Zeilen 5 bis 10 erweitern.

1
2
3
4
5
6
7
8
9
10
11
12
function wp_syntax_code_trim($code){ 
  // special ltrim b/c leading whitespace matters on 1st line of content 
  $code = preg_replace("/^\s*\n/siU", "", $code); 
  $code = rtrim($code); 
  // MRi: changes to retranslate html code tags into the normal 
  // characters for geshi. 
  $code = strip_tags($code); 
  $arrSearch = array("&lt;", "&gt;", "&nbsp;", "&amp;");
  $arrReplace = array("<", ">", " ", "&"); 
  $code = str_replace($arrSearch, $arrReplace, $code); 
  return $code; 
}

Das war es auch schon. Man sollte sich jetzt nur noch angewöhnen auf ein < Zeichen immer ein Leerzeichen folgen zu lassen, sonst ergänzt TinyMCE evtl. sehr unsinnige closing Tags ❗

Einen herzlichen Dank an Shantz der hier den entscheiden Hinweis gab.