WordPress Plugin zum Einbinden und Filtern von Inhalten aus externen Websiten

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

Jesus Sirach (oder Ben Sira, der Siracide, das Sirachbuch; abgekürzt Sir) gehört zu den Spät­schrif­ten des Alten Testa­ments. Das Buch ist nach seinem Autor be­nannt, der um 190/180 v. Chr. in Jerusa­lem die hebrä­ische Urfas­sung nieder­schrieb. Er lebte in einer Welt, die vom Hellenis­mus ge­prägt war, und leitete ein jüdi­sches „Haus der Bil­dung“ nach dem Vor­bild einer griechi­schen Philo­sophen­schule. Seine Schrift ist wahr­schein­lich aus diesem Unter­richt erwach­sen und daher eine Art Lehr­buch. Ben Sira präsen­tierte einen für die dama­lige Zeit moder­nen Gesamt­entwurf der religiö­sen Tra­ditio­nen Israels. Beson­ders gelungen ist ihm die Verbin­dung von Tempel­kult, Tora und Weis­heit. Prak­tische Rat­schläge nehmen brei­ten Raum ein, wobei kein bibli­scher Autor so aus­führ­lich auf die Themen Ehe, Fami­lie und Freund­schaft ein­geht wie Ben Sira. Er ve­rmittel­te seinen Schülern auch eine gewisse Welt­läufig­keit, die für ihre spätere Tätig­keit wün­schens­wert war.  – Zum Artikel …

Einbinden der Präambel unseres Grundsatzprogramms



Ausblick

Dieses Plugin entstand aus der Not aber es tut das was ich will, daher halte ich es für sehr wahrscheinlich, dass ich daran vorerst nicht weiterentwickeln werde. Ich habe es aus diesem Grund auf GitHub geladen und Interessierte zur Mitarbeit auf.

https://github.com/sahne123/Wordpress-Plugin-zum-Einbinden-und-Filtern-von-Inhalten-aus-externen-Websiten.-Kurz-PEFIEW.

Ideen wie man das Plugin verbessern könnte: Einzubindende Inhalte und deren Filter etc. sollten in einem Administrationsmenü durch Textfelder eingespeichert werden. Dadurch erspart man sich die geschweiften Klammern und es ist übersichtlicher. Diese Inhalte sollten dann durch einen Shortcode + ID auf den Seiten eingebunden werden können. Bei diesem Vorgehen könnte man dann auch die Refresh-Rate eines Inhalt und die Warnung für jeden Filter individuell einstellen.

Download

Download von PEFIEW