Sidebar
ein-/ausblenden

WP - Inhalte auf anderen Seiten nutzen

Plugin für WordPress SEO

Anzeige

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 - http://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 = "http://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 = "http://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

31 Kommentare und 2 Trackbacks zu „WP - Inhalte auf anderen Seiten nutzen“

  1. 1
    Pingback von WK - Blogs auf anderen Seiten nutzen - bueltge.de [by:ltge.de]
  2. 2
    Pingback von Grafikplatz » Blog Archiv » Willkommen bei Grafikplatz
  3. 3
    Kommentar von Jan

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

  4. 4
    Kommentar von Sascha

    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

  5. 5
    Kommentar von Frank Bültge

    Ohne Code und Link kann ich nichts dazu sagen.

  6. 6
    Kommentar von bioben

    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?

  7. 7
    Kommentar von Frank Bültge

    @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.

  8. 8
    Kommentar von Manuel

    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!

  9. 9
    Kommentar von Matze

    Jetzt kommt endlich der Content aus meinem Blog auf meine Startseite.
    Großartig, danke!

  10. 10
    Kommentar von guenter

    danke für das nette tutorial - funktioniert bestens!

    perfekt wäre es, wenn man das datum auch ausgeben könnte - habe bereits stunden probiert, aber ich komme nicht dahinter...

    wäre nett, wenn du mir einen kleinen hinweis geben könntest. :-)

    grüße

    günter

  11. 11
    Kommentar von Frank Bültge

    Schau mal, im Feed gibt es meist: $item['pubdate']

  12. 12
    Kommentar von guenter

    danke für die rasche rückmeldung auf deinen doch schon recht alten beitrag.

    pubdate hab ich schon probiert, geht leider nicht...

  13. 13
    Kommentar von Frank Bültge

    Schau mal in das XML des Feed, dort findest du die Syntax, die du dann verarbeitest.

  14. 14
    Kommentar von guenter

    Frank, ich hab's geschaft - vielen Dank für deine Geduld!

    Da bei Verwendung der wp-rss.php kein Datum ausgegeben wurde, hab ich die wp-rss2.php eingebunden und inkl. ein paar kleinerer Anpassungen deines Codes hat alles wie gewünscht geklappt!

  15. 15
    Kommentar von testos

    hallo,

    erstmal danke fuer das tut.
    kann man dieses script mit einer Cache funktion erweitern?
    das wuerde die ladezeit der webseite um einiges beschleunigen :D

    Gruesse

  16. 16
    Kommentar von Frank Bültge

    Ja sicher, aber in dem Fall musst du einen eigenen Cache bauen, bspw. mit einer Lösung in PHP, den WordPress Cache kann man dann nicht nutzen. her wird ja nur der Feed gelesen.

  17. 17
    Kommentar von SooV

    hallo,

    was muss ich für befehle nutzen/einbauen, damit nach dem klick auf "mehr" der Artikel in neuem Fenster geöffnet wird? Und wie kann ich den Abstand (vertikal) verringern?

    Ich benutze iFrame um das RSS anzuzeigen der nur 140 px hoch ist. Schaut Gaga aus wenn der Artikel in diesem geöffnet wird.

    Würde mich über Hilfe freuen...

    Lieben Grüßi
    SooV

  18. 18
    Kommentar von Frank Bültge

    @Soov: Dazu solltest du dir die Doku zu iframes ansehen, dort ist das vermerkt, denn du musst ja aus dem iframe springen. Ebenso die Größe kann mit CSS verändert werden, die Sites dazu sind sehr vielschichtig.

  19. 19
    Kommentar von Pacino

    Hallo Fank. erst mal vielen dank für das tutorial. ich habe da aber noch eine frage.
    und zwar folgendes, ich möchte 3 spalten auf einer externen seiten erstellen. und in jeder der 3 spalten soll eine andere kategorie dargestellt werden, Aber nicht nur der titel, sondern auch der inhalt sprich bilder etc.
    Wie oder was muss ich nun tut damit die rss feeds nach kategorien sortiert werden und der post inhalt auch dargestellt wird? bin leider nicht so der WP crack und hab auch nicht allzu viel ahnung von php etc.. ich hoffe du kannst mir helfen und bedanke mich schon im voraus viel mals..

    danke..
    pacino

  20. 20
    Kommentar von Frank Bültge

    @Pacino: du kannst für jede Kategorie in WordPress einen eigenen Feed abrufen und den dann parsen, der Feed enthält Title, Description und mehr, also quasi alles, wenn der WordPress Blog so konfiguriert ist.

  21. 21
    Kommentar von SooV

    Hallo Frank.

    Ok, aber der vertikale Abstand zwischen der angezeigten Artikelüberschrift und den jeweiligen links unterhalb muss ich doch in deinem Script ändern oder? Bzw. in der CSS?
    Vielleicht schaust Du es Dir mal kurz an...
    Wie die größe des IFrames zu ändern ist weiß ich. Ich weiß nur nicht ob das in Deinem Script, in der CSS oder am iFrame zu ändern ist mit "öffnen in neuem Fenster"

  22. 22
    Kommentar von Frank Bültge

    @SooV: Am Script muss man für die Darstellung nichts ändern, auch Freiraum wird via CSS gestaltet.

  23. 23
    Kommentar von Pacino

    Hallo Frank,
    den feed sehe ich doch nur eine kategorie anzeigen im feed kann ich nicht, er zeigt mir dann nur den normalen Blog aber halt auch nur diese Kategorie.
    Bin leider nicht so der Könner was html und php etc angeht.
    In deiner beispielfatei wird ja nur der Titel und der Link zum Artikel gezeigt, wenn ich nun den ihalt avh noch anzeigen lassen möchte muss ich ja noch irgendwas einfügen bei deiner Datei oder? Sowas wie Array_the_content etc. ??

    Könntest du mit dies bitte erklären? Vielen dank für deine allgemein gesehen Hilfsbereitschaft. Danke

  24. 24
    Kommentar von Frank Bültge

    @Pacino: du bekommst zu jeder Kategorie eines WordPress Blog einen Feed, einfach mal die URL eingeben, Bsp. example.com/category/xyz/feed/ bei aktiven Permalinks, wenn die nicht aktiv sind, dann nutze den Artikel, den ich im Kommentar verlinkt habe um den Feed zu finden. Da muss man also nix mit html oder php machen. Das Anzeigen der Inhalt geschieht durch das Parsen des Feed und Ausgaben der Inhalt, so wie es das kleine Beispiel zeigt.

  25. 25
    Kommentar von SooV

    ok frank, danke soweit. immerhin weiß ich wo ich nun ansetzen muss. danke dir, und hoffe du schaffst weiterhin so gute und nützliche sachem ;-)

    wenn ich nicht weiter komme, weiß ich ja wo ich dich finde ;-) ))

    frohes schaffen noch...
    Lieben Gruß
    SooV

  26. 26
    Kommentar von Pacino

    Hallo Frank..
    So ich hoffe ich muss dich nun das letzte mal nerven..
    Also den Feed konnte ich nun in die einzelnen Kategorien unterteilen und anzeigen so.
    Wenn man jetzt auf http://www.mommyikeepitgangsta.com/blog/wp-content/themes/pacino/test.php geht. sieht man ja den Titel und den "Mehr" link. Wie schaffe ich es nun das aber der ganze Post/Artikel angezeigt wird, quasi wie im normalen Blog (das wenn man auf den Titel klickt man zum einzelnen artikel/post mit commentanzeige) kommt? könntest du mir dies erklären?

    Vielen vielen dank.. und sorry fürs stören.. :S

  27. 27
    Kommentar von Frank Bültge

    @Panico: dazu gibt es den Template Tag the_content, der das alles kann. Auch mal im Codex lesen.

  28. 28
    Kommentar von Christian

    Hallo,
    der Pfad zu meinen Feeds lautet http://www.url.de/blog/?feed=rss2. Wenn ich den Pfad in den obenstehenden Code eintrage erscheint jedoch kein Feed auf der Seite. Auch wenn ich den Code 1 zu 1 kopiere, sprich http://bueltge.de/wp-rss.php drin lasse wird mir kein Feed angezeigt. Hast du vielleicht eine Ahnung woran das liegen könnte?
    Vielen Dank und viele Grüße

    Christian

  29. 29
    Kommentar von Frank Bültge

    @Christian: nein, sollte eigentlich klappen; in der Demo klappt es ja.

  30. 30
    Kommentar von Dominik Freitag

    Ich kann es dir sagen @Christian: Auf deinem Server ist die Funktion "allow_url_fopen" nicht aktiviert. Dann geht das leider nicht, da das Script wohl auch nicht mit relativen Pfaden umgehen kann. Aus Gründen der Sicherheit kann ich vom Einschalten der Funktion "allow_url_fopen" auch nur abraten.

    Grüße,
    Dominik

  31. 31
    Kommentar von Dirk

    Hallo Frank,

    vielen Dank für dein Skript - Ich benutze es auf mehreren Seiten von mir. Leider funktioniert es allerdings auch auf einigen Seiten nicht, was denke ich mal an den Providern liegt.

    Muß irgendetwas bestimmtes aktiv sein? Z.B. "url fopen" On sein ???

    Würde micht freuen von dir zu hören.

    Danke

    Dirk

  32. 32
    Kommentar von Dirk

    Es ist so wie ich es dachte.

    "url fopen" muß aktiviert sein und "allow_url_include" ebenfalls auf "on".

    Es gibt Provider die das erst in teureren Paketen tun. Deshalb funktioniert es bei einigen Anbietern nicht von vorne herein. Vielleicht machst du noch einen Hinweis in deinen Bericht?

    Viele Grüße
    Dirk

    PS: Dein Downloadlink funktioniert auch nicht mehr ....

  33. 33
    Kommentar von Frank Bültge

    @Dirk: habe den Download korrigiert; der Artikel ist aber schon älter. Die Idee klappt noch immer, alternativ kann man aber über ein include der wp-load.php nachdenken und damit alle Funktionen von WordPress direkt nutzen; auch dazu gibt es einige Beiträge hier im Blog.

Kommentar schreiben

Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.

E-Mail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

Kommentar-Hilfe

händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.

Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.

xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>

Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als &lt; und > als &gt; einfügt.

E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.

Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.

Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.

Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.