WordPress Post-Thumbnails aus RSS-Feed auslesen. preg_match und Regular Expressions

wordpress-rss-feed

Ab und zu möchte man den RSS-Feed seines WordPress Blogs auf einer anderen Seite einbinden, um dort beispielsweise die neuesten fünf Beiträge zu bewerben. Der RSS-Feed ist schnell ausgelesen, ein Problem sind häufig die Post-Thumbnails der Artikel.
Die Artikelbilder werden von WordPress nicht in den Feed übertragen. Um die Post-Thumbnails dennoch im Feed anzuzeigen, wird häufig in der functions.php ein Snippet eingefügt das die Bilder in den Inhaltsbereich des Feeds lädt. Da sich die Bilder dann allerdings zusammen mit dem Text und anderen Bildern in einem Feed-Element befinden, ist schwierig sie gezielt auszulesen.

Modernes Webdesign

Neue Workflows, Techniken und Designideen – inkl. Rapid Prototyping, Responsive Design und Sass.

In unserem Shop kaufen
Signierte DVD, keine Versandkosten

Bei Amazon bestellen
Standard-Version

Element mit PHP preg_match identifizieren

Das Artikelbild wird im Feed als img direkt vor dem eigentlichen Inhalt des Beitrags eingebunden. Semantisch betrachtet befindet es sich aber ebenso wie der Beitrag selbst innerhalb des Elements "<description>". Mit preg_match lasst sich das Artikelbild über die Dateiendung identifizieren und in einem Array speichern. Anschließend zeigen wir immer nur das erste Bild des Array.

Alles was ihr benötigt, ist eine Variabel bzw. ein Array in der ihr den Feed-Inhalt (description) verfügbar habt. Sollte das nicht der Fall sein, schaut euch bitte noch einmal diesen Artikel an: RSS-Feed von WordPress auslesen.

Im folgenden Beispiel-Code wird $quelle nach Bildern durchsucht, und diese der Reihe nach in $ziel abgespeichert.

preg_match("/src=[\"\']?([^\"\']?.*\.(png|jpg|gif))[\"\']?/i", $quelle, $ziel); // Bilder werden aus $quelle ausgelesen und in $ziel gespeichert.

Anschließend könnt ihr mit folgendem Code das erste Elemente des Array auslesen und in einem img-Tag einbinden.

<img <?php print_r($ziel[0]); ?> height="100" width="100" alt=""/>

Mit diesem "regulären Ausdruck" ist es möglich die Post-Thumbnails von WordPress aus dem Feed zu extrahieren und in Kombination mit anderen ausgelesenen Feed-Elementen auf einer externen Website darzustellen.