﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Klimperlude &#187; Wordpress</title>
	<atom:link href="http://www.klimperlude.de/category/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.klimperlude.de</link>
	<description>Der Klimperlude bloggt über Computerspiele, insbesondere Pc Spiele, MMOGs, Mods, Game Design und mehr.</description>
	<lastBuildDate>Fri, 22 Jul 2011 13:59:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Beliebteste Beiträge unter Wordpress anzeigen</title>
		<link>http://www.klimperlude.de/2009/09/beliebteste-beitrage-unter-wordpress-anzeigen/</link>
		<comments>http://www.klimperlude.de/2009/09/beliebteste-beitrage-unter-wordpress-anzeigen/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 14:12:56 +0000</pubDate>
		<dc:creator>Klimperlude</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[beliebteste Beiträge]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Readers_Post]]></category>
		<category><![CDATA[Top 5]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.klimperlude.de/?p=93</guid>
		<description><![CDATA[
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 &#8220;Pages&#8221; 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 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.klimperlude.de/wp-content/uploads/2009/09/beliebteste-beitraege1.jpg"></a><a href="http://www.klimperlude.de/wp-content/uploads/2009/09/beliebteste-beitraege.jpg"><img class="alignnone size-full wp-image-106" title="Beliebteste Beiträge unter Wordpress" src="http://www.klimperlude.de/wp-content/uploads/2009/09/beliebteste-beitraege.jpg" alt="Beliebteste Beiträge unter Wordpress" width="500" height="361" /></a></p>
<p>Um die beliebtesten Beiträge auf Klimperlude.de anzuzeigen, benutze ich Stefan Groenvelds Plugin <a class="externerlink" title="Readers_Post Plugin" href="http://www.groenveld.de/2006/10/29/post-readers-wp-plugin/">Readers_Post</a>. Das Problem dabei ist leider, dass alle Seiten mitgezählt werden, auch insbesondere die statischen &#8220;Pages&#8221; wie Impressum. In der Regel möchte man aber nur <strong>beliebteste Artikel</strong> darstellen. In den Kommentaren zu dem Plugin fragen nicht wenige wie man Seiten  nun ausschließen kann.<span id="more-93"></span></p>
<blockquote><p><a href="http://www.klimperlude.de/wp-content/uploads/2009/09/beliebteste-beitraege.jpg"></a>Kann man die Funktion überreden, bestimmte Beiträge (z.B. Startseite und Impressum) zu ignorieren ?</p></blockquote>
<p>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.</p>
<h3>Pages komplett ausklammern</h3>
<p>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:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">function writeReader() {<br />
global $wpdb, $wp_query;<br />
if (is_single || is_page()){<br />
$postID = $wp_query-&gt;post-&gt;ID;<br />
}<br />
if (is_home() || is_archive()){<br />
$postID = 0;<br />
}</div></td></tr></tbody></table></div>
<p>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:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">if (is_home() || is_archive() || is_page()){</div></td></tr></tbody></table></div>
<h3>Alles mitzählen, nur die Ausgabe ändern</h3>
<p>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 &#8220;beliebtesten Beiträgen&#8221; 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:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$lastXs = $wpdb-&gt;get_results(&quot;SELECT &quot;.$wpdb-&gt;posts.&quot;.ID AS ID,&quot;.$wpdb-&gt;posts.&quot;.post_title<br />
AS TITLE ,&quot;.$wpdb-&gt;post_counter.&quot;.post_count AS ZAEHLER FROM &quot;.$wpdb-&gt;posts.&quot;,&quot;.$wpdb-&gt;post_counter.&quot; where<br />
&quot;.$wpdb-&gt;post_counter.&quot;.post_id = &quot;.$wpdb-&gt;posts.&quot;.ID AND (&quot;.$wpdb-&gt;posts.&quot;.post_title != 'Impressum' AND<br />
&quot;.$wpdb-&gt;posts.&quot;.post_title != 'Login' AND &quot;.$wpdb-&gt;posts.&quot;.post_title != 'Spielehistorie' AND &quot;.$wpdb-&gt;posts.&quot;.post_title != 'Der Klimperlude') AND (&quot;.$wpdb-&gt;posts.&quot;.post_status = 'static' OR &quot;.$wpdb-&gt;posts.&quot;.post_status = 'publish') order by &quot;.$wpdb-&gt;post_counter.&quot;.post_count DESC limit 0,&quot;.$limit);</div></td></tr></tbody></table></div>
<p>Der wichtige Teil ist hier die Abfrage nach dem post_title (z.B. post_title != &#8216;Impressum&#8217;). Es werden nur Daten aufgenommen solange der Titel der Seite nicht Impressum, &#8220;Spielehistorie&#8221; oder &#8220;Der Klimperlude&#8221; (mein &#8220;about me&#8221;) lautet. An der entsprechenden Stelle einfach</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">AND &quot;.$wpdb-&gt;posts.&quot;.post_title != 'Der Klimperlude'</div></td></tr></tbody></table></div>
<p>hinzufügen/ersetzen und statt <em>Der Klimperlude</em> den Titel der Page einsetzen.</p>
<p>Ich hoffe das hilft weiter, für Fragen bin ich natürlich immer zu haben :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klimperlude.de/2009/09/beliebteste-beitrage-unter-wordpress-anzeigen/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

