RSS Feed abonnieren

Code in WordPress einfügen

17. August 2009

Ich hatte für meinen Neustart mit WordPress einige alte Inhalte einzupflegen. Diese enthalten jede Menge Code-Beispiele und ich mußte mit Entsetzen feststellen WordPress macht es einem da nicht leicht. Also ran ans Werk und eine Lösung gesucht. Eine für mich akzeptable habe ich auch gefunden.

Ich laß von diversen Workarounds, Plugins und Workarounds zu Plugins, weil keines das so richtig kann wie es das idealerweise sein sollte.

Fast jedem Beitrag war zu entnehmen, dass man die visuelle Ansicht im Editor alles wieder kaputt macht. Diese benötige ich sowieso nur selten, da ich reines HTML bevorzuge. Doch auch in der HTML-Ansicht kann WordPress den Code wieder zerschießen wenn er falsch eingegeben war.

meine Lösung – ohne Plugins

Daher habe ich mir ein kleines PHP-Script gebaut. In dieses wird einfach der einzufügende Code eingefügt (was für ein tolles Deutsch) und das Script erzeugt mir daraus einfügbaren „Code“. Und das alle ohne das ich das pre Tag benutzen muss, was bei WordPress anscheinend schlecht unterstützt ist. (So zumindest mein erster Eindruck)

Den erzeugten Code einfach per Copy & Paste ins WordPress Editor-Fenster übernehmen und fertig. Leerzeile vorher und nachher nicht vergessen und alles wird sauber formatiert. Und es bleibt auch so – bis man wieder die visuelle Darstellung benutzt :(

Hier der Code – das Script ist „standalone“ und kann irgendwo auf dem Webspace abgelegt werden.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Code-Helper</title></head><body><?php 
 
$tab_to_space = 4;
 
if ($_POST['code']) {
    echo '<h1>Code-Helper</h1><h3>Ready.. :)</h3><p><a href="'.$_SERVER['PHP_SELF'].'">Restart</a></p>';
    echo '<form><p><textarea name="code" cols="50" rows="20" style="width: 90%; margin: 5px;">'.
        htmlspecialchars('<code>'.
            str_replace(array("\r","\n\n","\t",' '),array('',"\n \n",str_repeat(' ',$tab_to_space),'&nbsp;'),
                htmlspecialchars(
                    ((get_magic_quotes_gpc()) ? stripslashes($_POST['code']) : $_POST['code'])
                )
            ).'</code>'
        ).'</textarea></p></form>';
    echo '<p><a href="'.$_SERVER['PHP_SELF'].'">Restart</a></p>';
} else {
    ?>
    <h1>Code-Helper</h1>
    <p>Paste your code here</p>
    <form method="post"><p><textarea name="code" cols="50" rows="20" style="width: 90%; margin: 5px;"></textarea></p>
    <p><input type="submit" value=" send "> <input type="reset" value=" cancel "></p></form>
    <?php
}
?></body>

Wer es direkt ausprobieren möchte hier meine Live-Demo

Das Ersetzen der Tabstops ist für mich passend gelöst, wer es anders benötigt muss selbst Hand anlegen oder das Script um weitere Eingabefelder (z.B. Anzahl der Leerzeichen je Tabstop) ergänzen.

Tags: ,

Eine Antwort zu “Code in WordPress einfügen”

  1. Steffen
    28. März 2010 um 12:06

    Hat bei mir leider nicht funktioniert :(

Kommentar?

Hinweise zum Datenschutz siehe Impressum

*

tempo@deruwe.de jl@deruwe.de