Oft gefragt – aber leicht gemacht: das Anzeigen der z.B. letzten beiden Beiträge auf einer externen, nicht zum WordPress- Weblog gehörenden Seite in Datum und Überschrift.
Tutorial mit Beispiel-Download:
Es wird dies ein externes Tool, welches nach Abmelden aus dem Admin-Bereich automatisch seine Arbeit verrichtet. Datum und Beitrags-Titel werden in eine Text-Datei geschrieben. Diese kann dann – ohne Zuhilfenahme der Datenbank – in jede beliebige Seite eingebunden werden.
Download: wp_aktuelle_blogthemen.zip
Dies passiert in der Datei “aktuelle_blogthemen.php”:
Da es sich um ein externes Tool handelt wird hier der WP-Header mitsamt seinen Funktionen geladen:
require_once("wp-blog-header.php");
Hier wird festgelegt wieviele Beiträge eingebunden werden – “1″ ist der Neueste:
query_posts('showposts=2');
Pfad und Name der Textdatei in die die gewünschten Daten geschrieben werden – benötigt u.U. Schreibrechte:
$textdatei ="aktuelle_blogthemen.txt";
Falls nach Beendigung des Scriptes auf eine Seite (z.B. auf die in der die Text-Datei eingebunden wird) weitergeleitet werden soll ist diese Adresse hier anzugeben:
$weblogadresse = "";
Das wars mit den Grundeinstellungen!
Und das passiert weiter:
Diese Zeilen leeren die aktuelle Text-Datei
$fh=fopen($textdatei, 'w+');
fclose($fh);
und hier wird der “Loop” gestartet:
if (have_posts()) {
while (have_posts()) {
Interessant wird es wieder bei den nächsten Zeilen!
Je nach Vorstellungen werden hier die Daten zusammen gestellt. In der Datei “aktuelle_blogthemen.php” sind einige Beispiele aufgeführt – einfach nach Lust und Laune aktivieren und unpassende auskommentieren!
Beipiel: “Definition List” mit Datum und Perma-Link:
$schreibinhalt = "<dt>".get_the_time('d|m')."</dt>\r\n<dd><a href=\"".get_permalink().the_title('">','</a>', false)."</dd>\r\n";
Danach wird in die geleerte Text-Datei bei jedem Loop- Durchgang ein neuer “Satz” Daten an das Ende geschrieben – bis der Loop zu Ende ist, also wenn die festgelegte Anzahl der Beiträge durch ist:
$fh=fopen($textdatei, 'a+');
fwrite($fh, $schreibinhalt);
fclose($fh);
Ist das ganze Script abgearbeitet kommt der “Header” – Aufruf zu tragen: die oben festgelegte Seite wird aufgerufen:
if ($weblogadresse) {
header("Location:$weblogadresse");
}
Gut, da ist noch keine Änderung zu merken!
Die soeben erstellte Text-Datei muß ja noch eingebunden werden! Den folgenden Code in die gewünschte PHP-Datei kopieren (geg. Pfad anpassen): <?php readfile ("_aktuelle_blogthemen.txt"); ?>
Fertig! Die letzten beiden Weblog- Einträge werden mit Datum und Titel inkl. Verlinkung dargestellt.
Das Ganze passiert aber nur nach Aufruf des Scriptes, eine Automatisierung könnte praktisch sen…
Hierfür muß etwas an den WP- Dateien geändert werden:
In der Datei “wp-login.php” (liegt meist im Root-Verzeichnis des Weblog) suchen wir uns die Stelle:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org ...
Davor wird folgender Code reinkopiert:
<?php
if ($loggedout=="true") {
header("Location:_aktuelle_blogthemen.php");
}
?>
Dies bewirkt eine automatische Umleitung auf unser neues Script wenn man sich aus dem Weblog abmeldet (wieder geg. Pfad anpassen). Daraufhin wird das Script abgearbeitet, die Text-Datei wird neu geschrieben und die (optional) angegebene “Weiterleitungs-Adresse” wird aufgerufen.
Dadurch das ein “Loop” gestartet wurde sind eigentlich alle von WordPress gelieferten Inhalte greifbar. Die zu schreibenden Daten können auch Anderes beinhalten – was ist unter codex.wordpress.org/Template_Tags nachlesbar.





Daniel 09.02.2008 - 23:28 Uhr
Genau das Richtige für mich – Danke!
Die Datenbank, die ich zur Verfügung habe ist eher träge (Telecom sei Dank ;-)), mit der extra Text-Datei fällt das zumindest bei der Startseite nicht mehr ins Gewicht…
Hab mir den RSS-Feed abboniert, bin gepannt was da noch so kommt ;-)
Daniel Streiter
alex 09.02.2008 - 23:32 Uhr
@daniel: grad wollt ich schreiben was die text-datei fürn sinn hat, aber da bist mir zuvorgekommen
@kick-image: guter ansatz
Daniel 09.02.2008 - 23:34 Uhr
Ah, da tuts sich ja was :-))
Hast Du auch so eine lahme Datenbank??
Kommt mir vor wie wenn da Tausende darauf zugreifen – aber sicher nicht auf meine Seite – leider
alex 09.02.2008 - 23:36 Uhr
naja, lahm nicht gerade, aber performance spart es sicher wenn die datenbank aussen vor ist
flo 09.02.2008 - 23:41 Uhr
querys optimieren, cachen, db aufräumen,… dann flutscht das ding doch
heiko 09.02.2008 - 23:46 Uhr
wenn sie lahm ist kannst machen wast willst, da hilft nur providerwechsel
tommy 17.04.2008 - 15:58 Uhr
funktioniert perfekt, ihr seid spitze!!!!!!!!
michaels weblog » Blog Archive » wordpress extern einbinden 16.03.2010 - 16:27 Uhr - Pingback
[...] http://www.kick-image.at/weblo.....-auflisten [...]