WordPress: Artikel mit Sticky Post hervorheben

sticky-post

**[Update] WordPress Funktion ** · Mit der Version 2.7 führten die Programmierer von WordPress ein neue Funktion namens “Sticky Post” ein. Diese Funktion erlaubt dem WordPress-Redakteur bestimmte Artikel wie ein Feature auf der Startseite festzukleben. Neue Artikel ordnen sich anschließend unter dem festgeklebten Artikel an. Eine schöne Möglichkeit Artikel für eine Weile besonders auf der Startseite hervorzuheben. Diese Feature-Funktion nutze ich nun nach dem Einbau für besondere Interviews auf Phlow-Magazine.com, wie z.B. das derzeitige Sutemos-Feature. Wie es funktioniert? Einfach weiterlesen.

Im Backend des Redaktionssystems findet man die Sticky Post-Funktion rechts in der Seitenleiste, indem man in der deutschen Version auf Bearbeiten bei “Sichtbarkeit” klickt (in der englischen Version auf Edit neben “Visibility”). Wird ein Häkchen im Feld gesetzt, ist der Artikel als Sticky – sprich klebend – markiert und sollte je nach Theme auf der Hauptseite vor allen anderen Artikeln festgeklebt bleiben, selbst wenn man neue Artikel jüngeren Datums eingibt.

Diese schöne Funktion konnte man zuvor nur mit ein paar Hilfsmethoden – z.B. mittels einer Extrakategorie samt Abfrage- realisieren. Oder man nutze das Sticky Post-Plugin . Beide Methoden fallen glücklicherweise unter den Tisch und man kann getrost eine Kategorie wieder löschen oder ein Plugin rausschmeissen.

Wie Sticky Post in ein Theme eingebaut wird

Um Sticky Posts zu realisieren, steht neben dem Conditional Tag is_sticky() das Template Tag <strong><?php sticky_class(); ?></strong> zur Verfügung. Während man mit is_sticky() über eine Schleife abfragen kann, ob es sich um ein Sticky Post handelt, ermöglicht <strong><?php sticky_class(); ?> </strong>die  Übergabe einer Extra Style-Klasse, um den Artikel besonders hervorzuheben.

Weil ich für Phlow-Magazine.com noch mehr Gestaltungsmöglichkeiten nutzen wollte, habe ich auf  <strong><?php sticky_class(); ?></strong> verzichtet und mir eine eigene Schleife gebaut.

Wie man mit Sticky Post Artikel besonders hervorhebt

Zugegeben, die Art, wie ich Sticky Post beim Phlow-Magazine.com einsetze, ist ein wenig komplex. Schließlich möchte ich den Feature-Artikel auch besonders hervorheben. Der Code setzt sich wie folgend zusammen.

Mit

<?php query_posts('paged='.$paged) ?><br /> <?php if (have_posts()) : ?><br /> <?php while (have_posts()) : the_post(); ?>

rufe ich die Schleife auf, und lasse mir lediglich das aktuelle und erste Sticky Post ausgeben.

**Wichtig: **Wer auf der Startseite, also über das Index-Template, die Paginate-Funktion anbietet, der muss bei einem query_posts unbedingt paged='.$paged) einsetzen. Denn bei mir trat das Problem auf, dass ich ohne diesen Artikel eine Weile nicht gelöst hätte.

Danach starte ich eine Wenn-Dann-Abfrage mit dem Conditional Tag is_sticky() und frage: “Bist Du ein Sticky Post?”

<?php if (is_sticky()) { ?>

Besondere Formatierung

<?php } ?><br /> <?php endwhile; else : endif; ?>

Wenn es keinen Sticky Post gibt, dann wird auf der Index-Seite einfach wie sonst vorgegangen und die “normalen” Artikel ausgegeben. Dazu starte ich eine zweite Schleife. Wichtig ist bei der zweiten Schleife, dass ich für diese Schleife die Sticky Posts herausfiltere. **Das geschieht erneut unkompliziert über das Conditional Tag **is_sticky() nur das dieses Mal keinerlei weitere Befehle in der Wenn-Dann-Abfrage ausgeführt werden.

Diese zweite Schleife ist leider bei meinem Theme erforderlich, da das Sticky Post über die ganze Breite eingefügt wird noch bevor ich die linke und rechte Spalte ins Layout einfüge und ich das zweispaltige Layout erst nach dem Sticky Post aufbaue.

Die Schleife sieht so aus:

<?php if (have_posts()) : ?><br /> <?php while (have_posts()) : the_post(); ?><br /> <?php if (is_sticky()) { ?><strong><!-- bleibt leer --></strong><?php } else { ?>

Hier fügt WordPress die “normalen” Artikel ein.

<?php } ?><br /> <?php endwhile; else : endif; ?>

Eine etwas besondere Sticky Post-Formatierung

Wie oben erwähnt, formatiere ich die Sticky Posts besonders. Während auf der linken Seite das Feature-Bild angezeigt wird, gibt WordPress auf der rechten Seite die Überschrift, einen speziellen Anreisser und anschließend die Sprechblase für die Kommentare aus.

Damit das Feature-Bild gesondert von WordPress abgefragt werden kann, habe ich ein neues benutzerdefiniertes Feld angelegt. Das habe ich feature-title-picture genannt und dieses baue ich über den Befehl

<?php echo get_post_meta($post->ID, 'feature-title-picture',true) ?>

auf der linken Seite ein.

Außerdem wollte ich den Weiterlesen-Link passend zum Artikel texten können. Deshalb tritt für den Anreisser das Auszug-Feld in Aktion, da ich in diesem den Link auf den Artikel manuell setzen und mit einem Extratext versehen kann. Beim Sutemos-Feature lautet der Extratext “Find out how they convinced artists like Vladislav Delay to join their mission »“. Das ist ein Versuch, um die Leser besonders neugierig zu machen. Der Extratext soll eine Frage aufwerfen, die mit dem Klick beantwortet wird. Das Auszugsfeld baue ich mit

<?php the_excerpt(); ?>

ein.

Optional ermöglicht mir diese Arbeitsweise bei weiteren Features außerdem die Möglichkeit weitere Links direkt in und unterhalb des Anreissers zu platzieren. Bei der üblichen Weise mit Hilfe von <?php the_content(); ?> würde WordPress immer noch den üblichen Weiterlesen-link einbauen, den ich nicht angezeigt haben möchte.

Und wenn es kein Feature bzw. Sticky Post gibt?

Dann wird beim Phlow-Magazine.com der gesamte hellgelbe Sticky Post-Bereich einfach nicht angezeigt und der restliche Inhalt rutscht nach ganz oben.

Das gesamte Listing

sticky-post-illu

Könnt Ihr Euch als TXT-Datei anschauen: listing-sticky-post