Sticky Posts in WordPress 2.7
In der neuen WordPress-Version 2.7 dürfen wir neben vielen anderen neuen Features von einer sehr interessanten Funktion Gebrauch machen – Sticky Posts. In diesem Post möchte ich auf sicherlich eine der populärsten Neuerungen von WordPress eingehen und ihre Funktionsweise erklären.
Übersetzt aus dem Englischen heißt to stick anhaften, ankleben, befestigen u.a. Vielen dürfte der Begriff sticky aus Foren bekannt sein. Dort kann man ein Thema als sticky deklarieren, um es unabhängig von der zeitlichen Reihenfolge über allen anderen Themen zu platzieren. Genauso verhält es sich auch mit den Sticky Posts in WordPress.
Im neuen Admin-Panel zum Schreiben eines Posts finden wir rechts in der Box (Status, Veröffentlichen etc.) eine Checkbox, mit der wir einen Posts als sticky definieren können. Damit wird dieser automatisch ungeachtet des Datums, am dem er veröffentlicht wurde, über allen anderen Posts auf der Startseite oder dem Blogindex dargestellt und bleibt dort solange, bis wir den Haken aus dieser Checkbox entfernen.
Conditional Tag is_sticky()
Mit diesem neuen Feature erhalten wir auch den neuen Conditional Tag is_sticky(), mit dem wir innerhalb eines Loops fragen können, ob ein Posts sticky ist oder nicht.
Nehmen wir an, unser Loop sie wie folgt aus:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<?php the_content(); ?>
<?php endwhile; endif; ?>
Mit dem Conditional Tag is_sticky können wir nun den Post markieren:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php if (is_sticky()) echo "<p>Dieser Posts ist sticky!</p>"; ?>
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<?php the_content(); ?>
<?php endwhile; endif; ?>
Hier sind die Möglichkeiten natürlich vielfältig. Zur klareren Übersicht habe ich das hier sehr vereinfacht dargestellt.
Post_Class sticky
In WordPress 2.7 werden wir außerdem die neue Funktion namens post_class() an die Hand bekommen, mit der wir unseren Posts im Loop automatisch je nach ihrer Art CSS-Klassen mitgeben können.
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<?php the_content(); ?>
</div>
<?php endwhile; endif; ?>
Die Klasse für die Sticky Posts wäre sticky und in unserem Stylesheet könnten wir dafür eine besondere Darstellungsweise definieren:
.sticky {
background: #fff000;
border: 5px solid #000;
}
Custom Loops
Neben den oben genannten Möglichkeiten zur Markierung eines Sticky Posts können wir mithilfe der Funktion query_posts() unseren Loop auf Sticky Posts hin untersuchen.
Um die Sticky Posts aus einem Loop auszuschließen, müssen wir laut WordPress Codex unseren Query String wie folgt erweitern (vor Beginn des Loops!):
<?php query_posts('caller_get_posts=1'); ?>
Eine weitere interessante Variante ist das Abfragen aller Sticky Posts. Nathan Rice stellte diese Frage im WordPress Support Forum und bekam folgende Lösung:
<?php query_posts(array('post__in'=>get_option('sticky_posts'))); ?>
Fazit
Das neue Feature Sticky Posts ist auf jeden Fall interessant und vielfältig. Außerdem ließe es sich sicherlich kreativ zweckentfremden – etwa für eine ‘Featured Posts’-Sektion o.ä. Auf den Erfindungsreichtum der WordPress-Community ist, denke ich, Verlass
3 Kommentare
1 Trackback
- Sticky-Posts in Wordpress 2-7 | Blogging, Internet und Webpromotion - [...] Anleitung dazu entnehmt bitte der oberen Beitragsverlinkung auf Wordpress-Buch und im Blog von Webdemar mit einer ausführlichen Erläuterung, vor ...


9. Dezember 2008
Super Tip! Danke für die umfassende Übersicht. Weiter so!
29. Dezember 2008
hallo,
die einfachste Variante des Stickys teste ich gerade in meinem Blog auf der Startseite und bin über die REaktionen der Blogleser und Besucher gespannt. Es ist aber in der Tat eine hervorragende Möglichkeit, auf interessante Beiträge im Blog aufmerksam zu machen.
3. Januar 2009
Ich glaube, dass war Otto42, der dass mit dem Query gesagt hat