Vor-Vorwort
Dies ist mein erstes WordPress-Plugin. Mir ist bewusst, dass es im Stil „quick & dirty“ geschrieben ist und man vieles hätte besser machen können hierzu auch später noch im Ausblick.
Vorwort
Wir sind gerade dabei die Website des Bezirksverbands Mittelfranken der Piratenpartei neu zu strukturieren. Unsere Vorgabe war es die Inhalte möglichst dynamisch anzulegen und viel zu verlinken um die Pflege der Inhalte, wenn sie denn mal drin sind, gering zu halten. Ein klassisches Beispiel sind die Themen der Piratenpartei. Würde man diese manuell einpflegen so müsste man diese Seiten nach jedem Parteitag aktualisieren. Da ohnehin alles relevante auch im Wiki gepflegt ist haben wir uns überlegt ob es denn nicht irgendeine Möglichkeit gibt diese Inhalte in WordPress einzubinden. Lange Rede, kurzer Sinn: Ich habe nichts gefunden und habe mir daher überlegt dieses Plugin selbst zu schreiben.
Das Plugin
WordPress Plugin zum Einbinden und Filtern von Inhalten aus externen Websiten. Kurz PEFIEW. Das Plugin ermöglicht es durch einen Shortcode beliebige Webseiten durch Regex (Regular Expressions) zu filtern und so bestimmte Inhalte einzubinden.
Die gefilterten Inhalte werden in der Datenbank zwischengespeichert und alle 24h aktualisiert. Sollte die Website beim aktualisieren offline sein wird weiterhin die gespeicherte Version angezeigt. Ist die Website länger als 7 Tage nicht erreichbar geht eine Mail an den Seiten-Administrator. Relative Links werden automatisch in absolute umgewandelt.
Verwendung
$before$after
$url = URL der einzubindenden Seite
$pattern (optional) = Regular Expression zum Filter, falls nicht angegeben wird die gesamte Seite eingebunden
$before (optional) = String der vor dem gefilterten Inhalt ausgegeben wird
$after (optional) = String der nach dem gefilterten Inhalt ausgegeben wird
Die Regular Expression ist im Sinne des Parameters von preg_match zu verstehen. Da WordPress Probleme damit hat wenn Parameter in Shortcodes HTML-Elemente beinhalten, und die Parameter hier klassischerweise HTML-Strings sind muss ein kleiner Umweg gegangen werden. Statt spitzer Klammern (<,>) verwenden wir geschweifte ({,}) und statt Anführungszeichen („) verwenden wir °. Das Plugin ersetzt diese Zeichen dann vor dem Parsen und Ausgeben.
Möchte man also eine nach einer Überschrift erster Ordnung mit der id „headline“ parsen und diese als Überschrift zweiter Ordnung ausgeben müsste der Shortcode folgendermaßen aussehen.
Beispiele
Einbinden des Artikels des Tages der deutschsprachigen Wikipedia
Artikel des Tages