17. März 2008 • Aktualisiert am 11. September 2008
Zurück aus der einwöchigen Abwesenheit melde ich mich mit einem Artikel, der die Verwendung von MySQL-Abfragen und PHP als Alternative zu MagpieRSS zeigt. Im Vorfeld erschien schon ein Artikel über die Feed-Verarbeitung mit MagpieRSS - jetzt gibt es das Gegenstück in Form von wenig Code-Bastelei!
Achtung: Diese Methode greift auf die MySQL Datenbank und somit auf alle Daten von WordPress zu. Sei dir bewusst, dass mit solchen MySQL-Codes schnell einmal ganze Tabellen geleert und gelöscht werden können! Ausserdem kann damit keine serverübergreifende Lösung erarbeitet werden.
Mir ging es auch einmal wie dem Autor des englischen Artikels (siehe Schluss): Ich wollte auf meiner statischen Website die letzten Artikel meines Blogs anzeigen. Gescheitert bin ich unter anderem an der Datumsanzeige und der Umwandlung der ID in den Namen des Autors. Aber das ist schon mindestens ein Jahr her und ich muss mich damit auch nicht mehr beschäftigen.
Zuerst einmal machen wir uns Gedanken über den Speicherort (Datenbank) und den Weg zur Anzeige (Output durch MySQL-Abfrage in PHP) . Wir stellen eine Verbindung zur Datenbank her, was mit diesen wenigen Zeilen schnell getan ist.
<?php
/*Turn off error reporting.*/
error_reporting(0);
/*Configure your database connection*/
$dbhost = 'localhost';
$dbuser = 'dbuser';
$dbpass = 'dbpass';
/*Connect to the database.*/
$conn = mysql_connect ($dbhost, $dbuser, $dbpass)
or die
('There was an error connecting to the database.');
/*Select your WordPress database.*/
$dbname = 'dbname';
mysql_select_db ($dbname);
Jetzt lesen wir den letzten Artikel mit Datum, Kopfzeile und Exzerpt aus. Damit man gleich zum Artikel gelangt, verlinken wir den Titel.
/*Get data from the database*/
$howmany = 1;
$result = mysql_query
("SELECT * FROM wp_posts
WHERE `post_type`=\"post\" and `post_status`= \"publish\"
ORDER BY post_date desc
LIMIT " . $howmany);
/*Display the data*/
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
//Date function
$datevalue = $row['post_date'];
$dateArray=explode('-',$dateva lue);
// Example of results
// $dateArray[0]= 2007
// $dateArray[1] = 02
// $dateArray[2] = 05
?> <p class="date"> < ?php
echo date('F j, Y', mktime(0, 0, 0, $dateArray[1],
$dateArray[2], $dateArray[0]));
echo "</p>"; ?>
<h3 class="title">
<a href="<?php echo "{$row['guid']}”;?>”
title=”Permalink to: < ?php echo “{$row['post_title']}”;?>”>
< ?php echo "{$row['post_title']}”;?></a>
</h3>
<div class="excerpt">
< ?php echo "{$row['post_excerpt']}”;?>
</div>
</p>
Nun muss man nur noch schnell den Arbeitsspeicher leeren und die Verbindung zum MySQL-Host beenden und das war's auch schon!
//Free the memory and then
mysql_free_result($result);
//Close the database connection.
mysql_close ($conn); ?>
Alle drei Code-Teile kannst du als Text-Datei zusammengefasst bequem herunterladen und in deine Seite einbauen. Du kannst diese Datei z.B. mit Dreamweaver oder einem ähnlichen Programm öffnen und bearbeiten.
Wenn du den Code genauer anschaust, erkennst du, dass eine Änderung von gewissen Dingen sehr einfach ist. Man kann die Anzahl der auszugebenden Artikel mit der Variable $howmany verändern und muss sich keine Gedanken über Template-Tags machen.
Falls du deine Konfigurationen der MySQL-Verbindung zu Ihrer WordPress-Datenbank verlegt hast, findest du diese in der Datei wp-config.php.
Gefunden bei: A (Smarter) Solution for Displaying WordPress Entries on ANY Part of Your Websitec
© 2012 Schweizer WordPress Magazin | Realisiert von Pascal Birchler | 52 Queries. 0,545 Sekunden.
Ah danke, genau danach habe ich gesucht :-)
Danke, auch ich habe gefunden wonach ich gesucht habe!
Weiter so! :)