Für Menschen · Seien Sie begeistert und Sie werden begeistern !
Durch den Artikel von Robert inspiriert, habe mich auf die Suche nach Plugins begeben, die die Datenbankabfrage nach oben drücken. Robert gibt dazu ja schon eine Menge an Tipps und viele seiner Kommentare erläutern noch mehr Hintergründe.
Nun, ich wollte aber auf die Darstellung meiner Startseite nicht unbedingt verzichten. Die Posts und Kommentare habe ich bisher mit dem Plugin "Customizable Comment Listings" in die Seite geladen. Leider drückt das Plugin die Querie-Abfrage enorm hoch. In meinem Fall möchte ich die letzten 10 Beiträge und Kommentare auf der Startseite darstellen, deshalb habe ich mich dafür entschieden, das ganze mit dem RSS-NewsFeed zu ermöglichen.
Mit der hier vorgestellten Lösug konnt ich mehr als 40 Anfragen, welche das Plugin duchführte, beseitigen. Auf anderen Blogs, wo ich WP als CMS einsetze, habe ich so ebenfalls einige Anfragen (ca. 20 Queries) unterbinden können. In den Fällen stelle ich nur die letzten Kommentar im Sidebar dar, bzw. auf einer extra Seite.
Um die DB-Anfragen und die benötigte Zeit auslisten, muss die folgenden Zeilen in euer Template integriert werden, am besten in den Footer.
<?php echo $wpdb->num_queries; ?> queries.
<?php timer_stop(1); ?> seconds.
Der Feed von WordPress enthält alle relevanten Inhalte, so dass es eigentlich recht leicht ist, diese zu laden und entsprechend darzustellen. Dazu habe ich meine Plugin "RSSImport" ein wenig in der Ausgabe verändert, was allerdings nur notwendig ist, da ich das Design anpassen wollte.
Ein weiterer Vorteil von WordPess ist die vielfältige Ausgabe von Feeds, so kann prinzipiell aus jedem Teil der Seite ein Feed ausgegeben werden.
Mit Hilfe eines PHP-Plugins ist es möglich den etsprechenden Code in den Seiten und Beiträgen auszuführen. Somit kann eine Seite erstellt werden, ohne ein neues Template zu erstellen.
In meinem Fall sieht der Code der Startseite, also direkt in der Seite (mit PHP-Plugin "PHP Exec") folgendermaßen aus.
Willkommen
Herzlich Willkommen, ...
<?php
// Get Total Posts
function get_totalposts() {
global $wpdb;
$totalposts = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->posts WHERE post_status = 'publish'");
return $totalposts;
}
// Get Total Comments
function get_totalcomments() {
global $wpdb;
$totalcomments = $wpdb->get_var("SELECT COUNT(comment_ID) FROM
$wpdb->comments WHERE comment_approved = '1'");
return $totalcomments;
}
?>
Weblog - Die letzten Zehn
<?php RSSImportTwo(10,"http://bueltge.de/wp-rss.php",true,false,true,200); ?>
Kommentare - Die letzten Zehn
<?php RSSImportTwo(10,"http://bueltge.de/comments/feed/",true,false,true,100); ?>
Der String <?php ?> ist für die Verwendung von php-Code in den Seiten notwendig, dass ist vom jeweiligen php-Plugin abhängig.
Zusätzlich bilde ich noch zwei Funktionen (get_totalposts und get_totalcomments), in der alle veröffentlichten Beiträge und Kommentare aus der Datenbank gelesen werden. Damit stelle ich die Gesamtzahl zur Verfügung. Das gleiche mache ich übrigens in der sidebar.php, um die Anzahl der Kategorien und Beiträge anzuzeigen.
Hier ist eine Version des PHPImoprt-Plugins zu finden, mit der automatisch ein Link eingefügt wird zum "Weiterlesen" der Beiträge und Kommentare. Außerdem könnt ihr die Zeichen angeben, die auf der Seite angezeigt werden sollen.
Der Aufruf der Funktion erfolgt folgendermaßen:
<?php RSSImportTwo(10,"/feed/",true,false,true,200); ?>
(10-Anzahl der News,"FeedAdresse",true-Ausgabe mit Description,false-Titel nicht kürzen,true-Description kürzen,200-Zeichen von Description)
Mehr Infos und den Download zum verwendeten Plugin gibt es hier: RSSImportTwo Plugin
Das Plugin gibt die Feeds innerhalb eines div-Containers aus, mit der class rssimporttwo. Darüber kann die Ausgabe ein wenig formatert werden. Die Title der beiträge und Kommentare werden mit dem Tag h5 ausgeben.
In meinem Fall formatiere ich den div zum Teil so, aber dass nur als Beispiel. Der Link zum "Weiterlesen" wird über die Klasse "more-link" formatiert, was sicher in jedem Theme vorhanden ist.
h1, h2, h3, h5 {
font-family: Palatino, "Palatino Linotype", "Book Antiqua",
"URW Palladio L", Georgia, serif;
font-weight: bold
}
h5 {
font-size: 1.3em;
margin: 20px 0 0 -10px
}
.rssimporttwo {
margin-left: 10px
}
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 < und > als > 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 JavaScript-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.
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.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 854 Beiträge, 15060 Kommentare in 14 Kategorien und 450 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet.
Design und Code ist unter Copyright
© 2001 - 2010 bueltge.de [by:ltge.de]
30. Januar 2006 um 12:08
9. Februar 2006 um 10:08
25. Februar 2006 um 10:55
6. März 2006 um 13:21
5. April 2006 um 13:20
3. Mai 2006 um 13:31
18. Juni 2006 um 17:52
Hey Frank,
irgendwas scheint im ersten teil von:
get_var(SELECT COUNT(ID) FROM
$wpdb->posts WHERE post_status = publish);
return $totalposts;
}
// Get Total Comments
function get_totalcomments() {
global $wpdb;
$totalcomments = $wpdb->get_var(SELECT COUNT(comment_ID) FROM
$wpdb->comments WHERE comment_approved = 1?);
return $totalcomments;
}
?>
nicht zu stimmen..
Will ich die Funtkion nutzen, zeigt er mir irgend einen MySQL Fehler an...
19. Juni 2006 um 11:32
Hallo Fabian,
achte bitte darauf, dass die Hochkommas und Anführungszeichen richtig sind. Die werden durch WP bei mir verändert. Ersetze alle nochmal händisch.
Der Code selbst stimmt, denn er läuft bei mir auf zwei Blogs und ich nutze ihn auch in einigen Plugins.
LG Frank
26. Juni 2006 um 06:15
4. September 2006 um 18:49
20. Dezember 2006 um 14:49
22. Januar 2007 um 12:29
13. März 2007 um 03:28
Hi,
I tried your pluggin and it works perectly for the rss... But a strange bug takes place when someone tries to write a message. It shows "Warning: Cannot modify header information - headers already sent by (output started at /home/uhecnet0/public_html/b/wp-content/plugins/rssimporttwo.php:1) in /home/uhecnet0/public_html/b/wp-includes/pluggable.php on line 275"
Also, there is this strange "" thing at the upper left of my page.
Any idea how to solve that?
Sorry, I don't speak Deutsch...
19. März 2007 um 11:49
Hello Louis,
this is a bug in the script with utf-coding. I have repair the bug and i hope, the plugin works correctly.
with best regards
Frank
12. April 2007 um 21:04
Das Plugin funktioniert exzellent. Einzige Frage, die bleibt: wie kann ich das Komma ',' am Ende des Feeds löschen?
THX
Chris
Site:
http://www.einstern.at-- Plugin läuft unter der Überschrift Subscription12. April 2007 um 21:29
Für deine Anwendung ist RSSImport besser geeignet. Das Komma kann ich nicht nachvollziehen, hast du den Code des Plugins geändert und da vielleicht ein Komma zu viel drin?
14. April 2007 um 10:08
Hi Frank, danke für den Hinweis. Hab RSSImport installiert und das funktioniert perfekt. THX C
15. April 2007 um 16:14
26. April 2007 um 10:39
26. April 2007 um 11:02
8. September 2007 um 17:37
30. September 2007 um 13:56
Frank,
neues Seitenlayout sieht sehr gut aus!!
7. Dezember 2007 um 00:32
13. Januar 2008 um 02:28
Dankeschön! Jetzt kann auch ich meine Comments zählen!
20. März 2008 um 13:48
14. Oktober 2008 um 11:26
2. Dezember 2008 um 16:53
Hallo Frank,
erstmal vielen Dank für das tolle Plugin! (RSSImportTwo)
Ich habe allerdings 2 kleine "Probleme" damit...
1. Ich nutze das Plugin um Beiträge und Kommentare aus dem Fanblog auf der Vereinsseite anzuzeigen. Das funktioniert soweit - zumindest bei den Beiträgen. Bei den Kommentaren fehlen immer die 3-4 Aktuellsten?!
2. Im Umkehrschluss will ich Beiträge (Auszugsweise) von der Vereinsseite auf der Fanseite anzeigen. Funktionierte mit Feedburner sehr gut, mit RSSImport leider gar nicht. An der Adresse kann es nicht liegen, da ich den Feed anderswo lesen kann.
Irgendeine Idee?!
Besten Gruß
Thomas
2. Dezember 2008 um 17:02
@Thomas: der erste Fall könnte am Cache liegen. Wenn die Inhalte drin sind im Feed, dann kann man sie auch auslesen. In WP wird der Feed aber gecacht und den Cache kann man def. bzw. deaktivieren. Dazu gibt es eine Konstante im Plugin.
Für den zweiten Fall ist das sehr schwer zu sagen, geht nur, wenn man den Feed kennt. Entscheidend ist, dass der Feed valide ist und keinerlei Fehler hat. Alternativ kann man ihn umleiten über Yahoo Pipes z.b. und dann wieder einleiten, weil Pipes in der Regel korrigiert und einen sauberen Feed zurück gibt.
2. Dezember 2008 um 18:03
Danke Frank!
Ein Problem ist gelöst. Ich habe den Feed über eine yahoo-Pipe erstellt und abgerufen - es funktioniert, obwohl der ursprüngliche Feed laut Validator valide ist... Na ja. Verstehen tu ich das nicht...
Nun zum anderen... Ich hab mir mal den Code des Plugins angeschaut und folgende Zeile gefunden.
//define('MAGPIE_CACHE_ON', false); // Cache off
Wenn ich die // vorn entferne dann bekomm ich einen Fatal Error ausgeworfen. Lieg ich da falsch, oder was muss ich beachten?
Danke schon mal.
3. Dezember 2008 um 15:32
@Thomas: hast du auch die Zeit des Cache auskommentiert und welchen Error bekommst du?
3. Dezember 2008 um 16:33
@Frank
die Zeit war nicht "kommentiert"... Also ohne die // davor.
Und warum auch immer, bekomme ich heute (jetzt) keinen Fehler angezeigt, wenn ich den Cache auskommentiere.
Trotzdem danke für die Tipps!
Die Plugins und Erklärungen sind super!
Mach weiter so!
Thomas
3. Dezember 2008 um 16:35
Achso... Ein Nachtrag noch. Alles funktioniert jetzt Bestens!
Thomas
2. April 2009 um 11:39
Hallo Frank,
kann man das Plugin auch evtl etwas zweckentfremden? Ich habe eine WP-Installation auf einem USB-Stick als Tagebuch und würde gern meine Online-Artikel damit importieren.
mixen.
Sozusagen das ofizielle Tagebuch und das geheime
Meinst du,das wäre möglich?
2. April 2009 um 12:17
Du willst die Artikel aus dem Online-Blog in dein Lokales Blog holen? Das geht, wenn du online bist zumindest, weil der Feed nur dann gelesen werden kann, wenn dein Lokales Blog Zugang zum Netz hat. Dazu musst du nix verändern, nur das Plugin oder die Funktion in Wp nutzen und den Feed einlesen.
2. April 2009 um 13:16
Aber das muß ich ja dann jedesmal händisch machen, oder? Automatisch geht das ncht? so wie zb. bei tumblr?
2. April 2009 um 13:42
Doch, wenn du den Feed via Plugin rein holst, dann wird das immer getan, sobald man die Seite aufruft, die die Ausgabe hat.
11. April 2009 um 16:41
OK, jetzt oute ich mich als platinblondie:
So das sich die Posts geschmeidig einfügen, als hätte ich sie im lokalen Blog geschrieben, geht wohl nicht, oder? Und meine 3 Tumblelogs kann ich auf diese Weise auch nicht einfügen? Das es ebenfalls so aussieht, als wären sie im lokalen Blog geschrieben worden?
zb: Alle Beiträge von
http://yadda-yadda-yadda.tumblr.com/in der Kategorie Ramblings, alle Beiträge vonhttp://stylefyle.tumblr.com/in der Kategorie stylfyle?Ich weiß, ich klinge nervig und wahrscheinlich bin ich das auch (sogar ziemlich sicher), ich kann nur nicht anders
, Perfektionismus ist ein Fluch.
Frohe Ostern!
13. April 2009 um 21:19
Datum im RSS-Feed
Hallo, wie bekomme ich denn das Datum des Feeds im Deutschen Format?
Danke - gl
3. Oktober 2009 um 01:19
hi
bei mir funktionieren die parameter nicht.würde gerne description 200 zeichen,blank und nofollow nutzen,
habs so eingebunden:
aber irgendwie zeigt er nur die 5 stück als link an...
woran kann das liegen?
Vielen Dank
Schöne Grüße
4. Oktober 2009 um 15:17
@benny: nutze bitte das Plugin RSSImport, dass kann nun alles und wird von mir gepflegt.