Mini-Thumbgalerie in Wordpress via Custom Fields

Silke Schümann wrote this 05:19:

Nach ein wenig try&error und mit der Hilfe einer Vorlage habe ich nun auf Franchie.de eine kleine Galerie in der Sidebar, die die jüngsten sechs Motive, genauer die jüngsten sieben T-Shirtmotive auf der Startseite. Das allerneuste Motiv ist in der rechte Spalte unter dem Feature, die weiteren sechs Motive erscheinen als Thumbgalerie. Nachdem ich über das Branford Magazin Theme die Custom fields etwas genauer unter die Lupe nahm, da war der Weg nicht weit zu den Motivbeiträgen eine Thumbgalerie zu generieren. Wie immer war Google der erste Weg. Die meisten Ergebnisse brachten mich wenig weiter, insbesondere wenn man mit der Aussage, dass Custom fields nur im Loop funktionieren nicht viel anfangen kann.

Und so sieht das Ergebnis aus:

  1. <h3>Die jüngsten sechs Motive</h3>
  2. <ul class="sixthumbs"><li>
  3. <?php
  4. $motive = get_posts('numberposts=7&category=12'); array_shift($motive); foreach($motive as $post) : setup_postdata($post);
  5. $thumbsArr = explode("|", get_post_meta($post->ID, "designthumbs", true));
  6. $cth = count($thumbsArr);
  7. srand((float) microtime() * 10000000);
  8. $rand_keys = array_rand($thumbsArr, $cth);
  9. if($cth>1){
  10. $dthpArr = explode(',', $thumbsArr[$rand_keys[0]]);
  11. }else {$dthpArr = explode(',', $thumbsArr[0]);}
  12. ?>
  13. <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><img src="<?php bloginfo('url'); echo '/'; echo get_option('upload_path'); echo '/';
  14. echo $dthpArr[0]; ?>" alt="<?php the_title(); ?>" /></a>
  15. <?php
  16. endforeach;
  17. ?>
  18. <span style="clear: left;"> </span>
  19. </li></ul>

Zunächst werden die Datenbank-Einträge (der Loop) in die Variable $motive geschrieben. Außerhalb eines Posts oder einer Page, liefert get_posts() alle Einträge, innerhalb eines Posts oder einer Page jeweils die Inhalte des Posts oder der Page. Der Loop wird in der Sidebar daher mit der Anzahl der jüngsten Beiträge und der Einschränkung auf die Kategorie 12 auf das gewünschte Segement der Datenbank reduziert. Nachdem der erste Beitrag bereits auf der Startseite gesondert hervorgehoben wurde, macht es Sinn den jüngsten Eintrag wieder wegzunehmen. Dies geschieht mit array_shift() Anschließend wird mit foreach ... der Array mit den Datenbankeinrägen abgearbeitet. Damit ist der Loop quasi offen und man kann die Funktion get_post_meta() einwerfen. Da mein Feld ein Array ist, mit dem sich eine ganze Reihe Informationen zum Motiv aufarbeiten lässt, schreibe ich die Daten in einen Array und da pro Eintrag nicht immer nur ein Motiv vorgestellt wird, es aber nicht sinnvoll ist, jedes Einzelmotiv bzw. jede Motivvariation in der kleinen Übersicht anzuzeigen und den Rahmen damit sprengen, wird die kleine Thumb-Sammlung noch einmal aufgedröselt und über array_rand() wird jeweils ganz zufällig eines aus der kleinen Sammlung herausgefischt und angezeigt. Das Customfield heißt in meinem Fall ‘designthumbs’

Das ist nun nicht mehr schwer analog nachzubauen und kann so allerlei Dinge anzeigen lassen. Viel Spass beim Aufmotzen des eigenen Themes. ;-) Und Danke an meine beiden Vorarbeiter, ohne deren Hilfe ich vermutlich noch lange den Codex anstarren würde und nicht wüsste, wovon die Rede ist. Noch immer weiß ich z.B. nicht was hinter der Funktion steckt.

Mit dieser Vorlage ist es nicht mehr sehr schwer, jedwede Übersichten zusammenzutragen. Ich kann an dieser Stelle nur noch viel Spaß wünschen, beim Verbiegen des eigenen Themes.

PS: hier ist noch ein Link zu 28 Wege wie man sein Wordpress-Blog mit Custom fields aufpeppen kann.

One Response to “Mini-Thumbgalerie in Wordpress via Custom Fields”

  1. Templaterie Blog Says:

    [...] nutzt, die hier im Weblog vorgestellt wurde. Der Code ist ähnlich dem Code für die Thumbnailgalerie in der Sidebar, allerdings steckt in dem folgenden PHP-Code noch ein Bug und ich hoffe nun, dass sich mir jemand [...]

Leave a Reply