Beliebteste Beiträge unter Wordpress anzeigen
Stefan Groenvelds Plugin Readers_Post anpassen
Um die beliebtesten Beiträge auf Klimperlude.de anzuzeigen, benutze ich Stefan Groenvelds Plugin Readers_Post. Das Problem dabei ist leider, dass alle Seiten mitgezählt werden, auch insbesondere die statischen “Pages” wie Impressum. In der Regel möchte man aber nur beliebteste Artikel darstellen. In den Kommentaren zu dem Plugin fragen nicht wenige wie man Seiten nun ausschließen kann.
Kann man die Funktion überreden, bestimmte Beiträge (z.B. Startseite und Impressum) zu ignorieren ?
Stefan antwortet darauf leider nur allgemein, dass man die Funktionen anpassen müsse. Ich will Euch hier konkret zeigen wie Ihr die Funktionen abändern könnt.
Pages komplett ausklammern
Es gibt grundsätzlich mehrere Möglichkeiten. Man kann an dem Punkt ansetzen, an dem die Daten in die Datenbank geschrieben werden. Das macht Sinn, wenn Ihr die Aufrufe der statischen Seiten grundsätzlich nicht braucht. Dazu schauen wir uns den Anfang der Funktion writeReader() näher an:
1 2 3 4 5 6 7 8 | function writeReader() { global $wpdb, $wp_query; if (is_single || is_page()){ $postID = $wp_query->post->ID; } if (is_home() || is_archive()){ $postID = 0; } |
Hier kann man die Abfrage nach is_page() aus Zeile 4 einfach nach unten in die Zeile 7 verlagern. Fortan werden Pages nicht mehr mit einbezogen. Zeile 7 sieht dann wie folgt aus:
1 | if (is_home() || is_archive() || is_page()){ |
Alles mitzählen, nur die Ausgabe ändern
Ich selbst wollte jedoch wissen, wie oft die statischen Seiten aufgerufen werden, da ich dies auch im mittleren Bereich für Pages anzeigen lasse. Unter den “beliebtesten Beiträgen” sollten aber nur die Artikel erscheinen. Deswegen lasse ich alle Daten erstmal in die Datenbank eintragen, und modifiziere dann je nach Funktion nur noch die Ausgabe. Das ganze lässt sich sicherlich schöner handhaben, da ich aber nur wenige statische Seiten benutze, habe ich diese einfach konkret abgefragt und ausgeschlossen. Für die Ausgabe in meiner Sidebar benutze ich die Funktion hot_posts:
1 2 3 4 | $lastXs = $wpdb->get_results("SELECT ".$wpdb->posts.".ID AS ID,".$wpdb->posts.".post_title AS TITLE ,".$wpdb->post_counter.".post_count AS ZAEHLER FROM ".$wpdb->posts.",".$wpdb->post_counter." where ".$wpdb->post_counter.".post_id = ".$wpdb->posts.".ID AND (".$wpdb->posts.".post_title != 'Impressum' AND ".$wpdb->posts.".post_title != 'Login' AND ".$wpdb->posts.".post_title != 'Spielehistorie' AND ".$wpdb->posts.".post_title != 'Der Klimperlude') AND (".$wpdb->posts.".post_status = 'static' OR ".$wpdb->posts.".post_status = 'publish') order by ".$wpdb->post_counter.".post_count DESC limit 0,".$limit); |
Der wichtige Teil ist hier die Abfrage nach dem post_title (z.B. post_title != ‘Impressum’). Es werden nur Daten aufgenommen solange der Titel der Seite nicht Impressum, “Spielehistorie” oder “Der Klimperlude” (mein “about me”) lautet. An der entsprechenden Stelle einfach
1 | AND ".$wpdb->posts.".post_title != 'Der Klimperlude' |
hinzufügen/ersetzen und statt Der Klimperlude den Titel der Page einsetzen.
Ich hoffe das hilft weiter, für Fragen bin ich natürlich immer zu haben :)
7 Kommentare zum Beitrag "Beliebteste Beiträge unter Wordpress anzeigen"
Kommentar schreiben:
| Author | Klimperlude |
| Datum | 11. September 2009 |
| Kategorie | |
| Wörter | 392 |
| Tags | beliebteste Beiträge Plugin Readers_Post Top 5 Tutorial Wordpress |
| Gelesen: | 2658 mal |
Klimperlude intern
Kategorien
- 3D (1)
- Angespielt (1)
- Diskussion (3)
- Fundstücke (4)
- MMOG (6)
- Mods & Plugins (3)
- Neuigkeiten (2)
- Privates (1)
- Technik (3)
- Vollversionen (3)
- Wordpress (1)
- Die besten Fallout 3 Mods
(8912 Leser) - Asmodier-Rüstung als Elyos tragen
(8297 Leser) - “Konfigurieren DNSe, um die Musik zu machen, die Ihr eigenes Gefühl enthält”
(4355 Leser) - Widescreen-Patch für Kotor 1 und 2
(3114 Leser) - Item-Remodeling in Aion
(3037 Leser)
Beliebteste Beiträge
- Kaliban
Klimperlude liest
- luke54: Hallo, danke für die Anleitung. Ich habe aber folgendes Problem mit Kotor II: Besitze einen...
- Gast: Ok danke ich werds mal versuchen sobalt ich Zeit dafür finde
- Klimperlude: Der Crash ist in diesem Fall normal, lies dir nochmal den letzten Absatz mit dem Hinweis durch: bei...
- Gast: Also in der ini habe ich aus Height=768 Width=1024 unter Graphics Options Height=800 Width=1280 gemacht dann...
- Klimperlude: Ferndiagnose ist immer schwierig. Wie lautet denn die Fehlermeldung und wie sieht der geänderte Eintrag...
Letzte Kommentare
Stichwörter
- 2D
Adventure
Aion
Aliens
Atari
beliebteste Beiträge
Charakter-Erstellung
Charaktere
Code-Abfrage
Daedalic
free
Game Design
Gelsenkirchen
gezeichnet
Hero Quest
hybrid
Item Remodeling
Kor-Ah
kostenlos
Kotor
MMOG
MMORPG
page tearing
Plugin
point & click
Qfg
qfg 1 char
quest for glory 1 savegame
Readers_Post
Remake
rpg
Rätsel
Sierra
Star Control II
Star Wars
Top 5
Tutorial
TWW
Urquan
VGA
vsync
Widescreen
Wolverine
Wordpress
X-Men Origins


Moin, moin,
schöne Erweiterung und Erklärung!
Der Grund für meine nur allgemeine Beantwortung der Fragen ist, dass sich das Plugin eigentlich an Anwender wendet, die wenigstens halbwegs wissen was Wordpress macht und wie es funktioniert. Für die sind die obigen Anpassungen dann kein Problem, wie man ja an Dir sieht :)
Viele Grüße
Stefan
Moin und danke :)
Richtet sich definitiv an Anfänger, dachte da besteht noch Bedarf.
Möchte mich hiermit auf jeden Fall für das coole Plugin bedanken!
Hey very nice blog!!….I’m an instant fan, I have bookmarked you and I’ll be checking back on a regular….See ya
Hey, great blog…but I don’t understand how to add your site in my rss reader. Can you Help me, please :)
Please refrain from advertising your link using different names. If you’re really interested in the rss feed, use the link above the comments or http://feeds.feedburner.com/klimperlude ;)
Hey hey….das erste Spiel, an dessen Namen Du Dich net mehr erinnern kannst, waren das vielleicht die “Giana Sisters”??? Kann mich noch gut daran erinnern ;)
Sehr gelungene Seite, weiter so!!!
* Der Samson*
Huhu :)
Nein, the great giana sisters ist es leider nicht, das habe ich noch in bester Erinnerung :) Das Spiel hatte auch kaum Grafik, mehr als Striche waren das nicht… muss noch um einiges älter sein.