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
Pefiew wirkt super, aber leider läuft es nicht. Was muss ich beachten, wie und wo den Code einbinden? Danke!
Wo genau liegt das Problem? Welche Version von WordPress benutzt du?
Hallo! Ich nutze 3.42 und habe dein Beispiel oben ([PEFIEW pattern="#{h2}{span class=°mw-headline° id=°Artikel_des_Tages°}Artikel des Tages{/span}{/h2}(.*){div class=°mehr°}{a href=°/wiki/Wikipedia:Hauptseite/Artikel_des_Tages/Chronologie#s" before="{h2}{span class=°mw-headline° id=°Artikel_des_Tages°}Artikel des Tages{/span}{/h2}" after="{/div}"]https://de.wikipedia.org/wiki/Wikipedia:Hauptseite[/PEFIEW]) in einen Artikel einzubinden versucht.
Hallo,
versuche zum Test doch mal folgendes „[PEFIEW ]http://google.de[/PEFIEW]“ und trag den Shortcode am besten über HTML-Ansicht ein.
Danke für deine Hilfe, aber leider funktioniert es immer noch nicht. Habe PEFIEW noch einmal installiert, alle anderen Plugins abgeschaltet, den Shotcode über HTML eingefügt.
Brauche ich zusätzlich ein PHP-Plugin, muss ich PEFIEW etwas einstellen …?
Keine Antwort. Schade. Hast wahrscheinlich zu viel um die Ohren, wie zu lesen ist. Falls du Zeit hast: Liegt es vielleicht am Theme? Deines finde ich leider nirgends zum Download …
Hi, habe mir ein WordPress in der Version 3.x installiert und wollte heute Abend mal testen. Du kriegst noch ne Antwort 🙂
Habe es eben nochmal bei einem neu aufgesetzten Blog probiert:
1. Datei herunterladen und entpacken
2. Den PEFIEW Ordner per FTP ins /wp-content/plugins/ Verzeichnis kopieren
3. Im Adminbereich das Plugin aktivieren
4. Testseite mit dem Shortcode: [PEFIEW]http://google.de[/PEFIEW] erstellt
Klappt bei mir einwandfrei. Am Theme kann es auch nicht liegen 🙁 Tut mir leid, dass es bei dir nicht klappt
Hallo, zunächst vielen Dank für deine Unterstützung. Vielleicht liegt es am Hoster. Welchen hast du?
Es könnte sein, dass dein Hoster „URL file-access“ deaktiviert hat. Bei 1und1 ist das z.B. eine Option die man explizit aktivieren muss, bei wem bist du?
Ich bin bei Shophosting.info und habe um Aktivierung der URL file-access gebeten. Mal abwarten. Ich melde mich. Nochmals vielen Dank.
Falls du allow_url_fopen und allow_url_include mit URL file-access meinst, so wird mein Provider diese Optionen aus Sicherheitsgründen nicht freischalten. Gibts eine andere Möglichkeit oder einen/deinen Provider? Danke!
Genau! um allow_url_fopen geht es, denn wenn diese Option nicht gesetzt ist lässt sich der Inhalt der Einzubindenden Website nicht laden.
Dass Provider diese Option nicht freischalten habe ich auch noch nicht gesehen. Bei einem anderen Provider sollte das funktionieren. Ich selbst bin all-inkl.com (Solltest du über diesen Link ein Hosting bestellen, erhalte ich eine Werbe-Gutschrift: https://all-inkl.com/?partner=167389)
Habe dein Plugin erfolgreich eingesetzt. Ich stelle fest, dass wenn ich keine (Text)Zeichen vor dem Shortcode gesetzt habe das Plugin „YPE html>“ voranstellt, also vor den importierten Artikel setzt.Ich kann mir derzeit nur selbst helfen indem ich ein Zeichen (einen weißen Punkt) als breaker davor setzte.
Kann mir jemand mit dem da Helfen
http://www.football.ch/fvbj/de/Fussballverband-Bern-Jura/Verband-FVBJ/Vereine-FVBJ/Verein-FVBJ.aspx/v-1390/a-as/
Ich will nur die Aktuelle Spiele haben oder nur die Tabelle ohne das drum herum irgendwie schaffe ich es nicht! Bitte um Hilfe