WP – Inhalte auf anderen Seiten nutzen

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 17 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

Immer wieder kommt es zur der Frage, wie kann ich Inhalte aus WordPress auf anderen Seiten nutzen, also außerhalb von WP. Dazu habe ich vor langer Zeit mal ein kleines Script – siehe „WK – Blogs auf anderen Seiten nutzen“ – veröffentlicht, mit welchem dies über das Auslesen der Feeds möglich ist. Trotzdem bekommen ich noch immer viele Fragen dazu und ich erläutere das ganze hier nochmal an einem Beispiel.
Das Beispiel kann man sich anschauen und downloaden. Für das Design sorgt CSS, welches ich hier nicht eingebunden habe, da es rein um die Funktion geht. Das solltet ihr dann noch anpassen.

Demo:

Das Demo dindet ihr hier: bueltge.de/test/xmlimport.php

Coding:

Im folgenden der Code der externen Seite. Dazu ist eigentlich nur zu sagen, dass ich im ersten php-Abschnitt den Feed nach RSS 1.0-Standard lade, das ist bei WP die wp-rss.php im root-Verzeichnis und im zweiten Abschnitt lade ich den Atom-Feed, das ist die wp-atom.php im root-Verzeichnis von WordPress.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de" id="xmlreader"  >
<head>
  <meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
  <meta http-equiv="imagetoolbar" content="no" />
  
  <meta name="author" content="Frank Bueltge" />
  <meta name="publisher" content="bueltge.de" />
  <meta name="copyright" content="Frank Bueltge - https://bueltge.de" />
  <meta name="keywords" content="WordPress, WP, RSS, Feed, RSSFeed" />
  <meta name="Diese zeigt, wei man den RSSFeed nutzen kann, um die Inhalte auf anderen Seiten darzustellen." />
  <meta name="page-topic" content="Gastronomie" />
  <meta name="robots" content="all" />

  <title>Beitr&auml;ge au&szlig;erhalb von WordPress</title>

  <style type="text/css" title="currentStyle" media="screen" >@import "style.css";</style>
  <link rel="Shortcut Icon" type="image/x-icon" href="favicon.ico" />
  
</head> 
<body>
  <h2>RSS Import 1.0</h2>
  <p>Hier wird der Feed nach Standard 1.0 von WordPress (wp-rss.php) importiert, die letzten 5 Beitr&auml;ge</p>
  <p>Diese Seite mit dem Beispiel downloaden: <a href="xmlimport.phps">Download Datei .phps</a></p>
  <div style="margin: 2em; padding: 1em; background: #DDD">
	  <?php
	  # Script: XML-Reader
	  # Copyright: y0y.de, erweitert: bueltge.de
	  
	  # Hier editieren
	  $url = "https://bueltge.de/wp-rss.php"; //URL zum XML-Feed
	  $number = 5; //Anzahl der angezeigten News
	  
	  # Ab hier nichts mehr ändern
	  
	  # code
	  $file_content = @file_get_contents($url);
	  
	  #Items auslesen
	  $items = preg_match_all("/<item[ ]?.*>(.*)<\/item>/Uis", $file_content, $array_items);
	  $array_items = $array_items[1];
	  if(!empty($array_items)) { //Nur wenn es Items gibt, soll auch was angezeigt werden
	  if ($number>sizeof($array_items)) $number=sizeof($array_items);
	      for($n=0;$n<$number;$n++) { //Nur die angegebene Anzahl der News soll angezeigt werden
	      preg_match("/<link>(.*)<\/link>/Uis", $array_items[$n], $array_link); //URLs auslesen
	      preg_match("/<title>(.*)<\/title>/Uis", $array_items[$n], $array_title); //Titel auslesen
	      preg_match("/<description>(.*)<\/description>/Uis", $array_items[$n], $array_description); //Beschreibung auslesen
	  
	  # Ab hier wird ausgegeben
	     echo "<h3>$array_title[1]</h3>"; //Titel darstellen
	     echo "$array_description[1]"; //Ausgabe der Beschreibung
	     echo "<a href=\"$array_link[1]\" title=\"Click f&uuml;r mehr Informationen\"> mehr</a>"; //Link
	     }
	  }
	  ?>
  </div>
  <hr />
  <h2>RSS Import Atom</h2>
  <p>Hier wird der Feed nach Standard Atom von WordPress (wp-atom.php) importiert, die letzten 2 Beitr&auml;ge</p>
  <p>Diese Seite mit dem Beispiel downloaden: <a href="xmlimport.phps">Download Datei .phps</a></p>
  <div style="margin: 2em; padding: 1em; background: #DDD">
    <?php
    # Script: XML-Reader
    # Copyright: y0y.de, erweitert: bueltge.de
    
    # Hier editieren
    $url = "https://bueltge.de/wp-atom.php"; //URL zum XML-Feed
    $number = 2; //Anzahl der angezeigten News
    
    # Ab hier nichts mehr ändern
    
    # code
    $file_content = @file_get_contents($url);
    
    #Items auslesen
    $items = preg_match_all("/<entry[ ]?.*>(.*)<\/entry>/Uis", $file_content, $array_items);
    $array_items = $array_items[1];
    if(!empty($array_items)) { //Nur wenn es Items gibt, soll auch was angezeigt werden
    if ($number>sizeof($array_items)) $number=sizeof($array_items);
        for($n=0;$n<$number;$n++) { //Nur die angegebene Anzahl der News soll angezeigt werden
        preg_match("/<id>(.*)<\/id>/Uis", $array_items[$n], $array_link); //URLs auslesen
        preg_match("/<title type=\"html\">(.*)<\/title>/Uis", $array_items[$n], $array_title); //Titel auslesen
        preg_match("/<content type=\"xhtml\">(.*)<\/content>/Uis", $array_items[$n], $array_description); //Beschreibung auslesen
    
    # Ab hier wird ausgegeben
       echo "Anm. der Titel: <h3>$array_title[1]</h3>"; //Titel darstellen
       echo "Anm. Titel mit Link: <a href=\"$array_link[1]\" title=\"zur Seite\"><h3>$array_title[1]</h3></a>"; //Titel mit Link
       echo "$array_description[1]"; //Ausgabe der Beschreibung
       echo "<a href=\"$array_link[1]\" title=\"Click f&uuml;r mehr Informationen\"> mehr</a>"; //Link
       }
    }
    ?>
  </div>
</body>
</html>

Download:

Download als txt-Datei: xmlimport.txt – 4 KByte

Von Frank Bültge

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

32 Kommentare

  1. Super! Schön schlank und einfach ohne Schnickschnack. War in fünf Minuten integriert und an die eigenen Bedürfnisse angepasst.

  2. Hallo!

    Das ist genau das Script was ich gesucht habe!

    Allerdings funktioniert es bei mir nicht.

    Ich lade die Demodatei und erstelle eine neue php Datei auf meinem Server. In diese leere PHP Datei kopiere ich dann 1:1 das Demoscript.
    Leider wird der RSS Feed nicht angezeigt.

    Was mache ich nur falsch?

    Viele Grüß – Sascha

  3. okay, das einbinden hat funktioniert. wenn ich jetzt allerdings auf „mehr“ klicke, gelange ich immer wieder zu WP-Seite und raus aus meiner urspünglichen Seite…

    ach und geht das ganze auch irgendwie mit Datum?

  4. @bioben: das Script ist lediglich ein Beispiel und kann natürlich erweitert werden. Wenn du mehr benötigst, dann schau dir mal meine Plugins RSSImport und RSSImportTwo an, dort lade ich schon Datum und einiges mehr. Den Link „mehr“ kann man ebenfalls anpassen oder weglassen. Allerdings sollte dann wohl der komplette Content dargestellt werden.

  5. Vielen Dank für das tolle Script. Genau danach habe ich schon eine Weile gesucht. Klappt bei mir wunderbar und lässt sich auch prima anpassen. So kann man auch ganz bequem die Inhalte von mehreren Blogs auf einer Seite wiedergeben. Klasse Arbeit!

Kommentare sind geschlossen.