datadirt - English blog            Fotos            Video-Podcasts            datenschmutz Shop            Disclaimer
datenschmutz - Social Marketing, Pro-Blogging und medien.kultur.technik

Unterschiedliche Templates für Einzelbeiträge

Mit kann man den statischen Seiten mit Bordmitteln unterschiedliche Templates zuweisen: Unter dem Menüpunkt Seiten-Template findet sich eine Liste aller verfügbaren Vorlagen. Für Einzelbeiträge funktioniert dies nicht ohne einen kleinen Eingriff – mit kategoriebasierten Conditional Tags lässt sich diese Aufgabe aber elegant lösen. Um anderen die gleiche Suche zu ersparen, habe ich eine kleine Anleitung zusammengestellt.

Die hier beschriebene Lösung macht freilich nur dann Sinn, wenn man das betreffende Layout mehrfach verwenden möchte, denn sie beruht auf der Abfrage der Kategorie: befindet sich ein bestimmter Einzelbeitrag (unter anderem) in der Kategorie X, so soll nicht das Standard- single.php, sondern ein anderes zum Einsatz kommen (1). Konkret bin ich auf das Problem gestoßen, weil ich das Who sees ads? verwenden: damit lässt sich konditional einblenden – ich binde damit die zwischen Überschrift und Content ein, und zwar so, dass nur Google-Besucher und Gelegenheitsleser marketingtechnisch penetriert werden, datenschmutz StammleserInnen jedoch verschont bleiben von den sensationellen Angeboten, die Zanox & Co. zur Verfügung stellen.

So weit, so gut – doch die Einbindung von direkt im Beitrag widerspricht den Richtlinien von trigami. Allerdings rufe ich das im auf: wäre ja auch viel zu mühsam, die Zeile in jeden einzelnen Beitrag zu kopieren. Also erschien es mir am sinnvollsten, eine eigene Kategorie für trigami-Reviews zu definieren und Beitragen, die (auch) dieser Kategorie angehören, ein eigenes Single- zuzuweisen. Das hat übrigens noch einen weiteren Vorteil: man kann die “das ist eine bezahlte Rezension”-Kennzeichnung gleich direkt ins -File einfügen. Hier eine kurze Schritt-für-Schritt Anleitung – die nötigen Informationen dazu hab ich nach einiger Suche gut versteckt im WordPress-Codex gefunden; ein , das die Page- Funktionalität auch für Einzelbeiträge nachrüstet, existiert einstweilen noch nicht – das wär natürlich die eleganteste Variante.

Anderes für einzelne -Beiträge

Die betreffende Abfrage gehört in die single.php-Datei, die sich im Theme-Verzeichnis befindet (2). Bevor diese umgemodelt wird, sollte aber zuerst die neue Kategorie angelegt werden – denn für die Modifikation der single.php benötigt man die ID der betreffenden Kategorie; diese wird übrigens bei der Kategorienliste im Backend in der ersten Spalte angezeigt. Nehmen wir für unser Beispiel mal an, unsere Kategorie für deviantes hätte die ID #34. Wir gehen vor wie folgt:

  1. Umbenennen der Datei single.php in single-standard.php.
  2. Erstellen einer zweiten Datei single-anders.php: dabei handelt es sich um die alternative -Variante für unsere Einzelbeiträge.
  3. Anlegen einer neuen single.php-Datei mit der Kategorieabfrage:

    < ?php
    $post = $wp_query->post;
    if ( in_category(’34′) ) {
    include(TEMPLATEPATH . ‘/single-anders.php’);
    } else {
    include(TEMPLATEPATH . ‘/single-standard.php’);
    }
    ?>

    Es gibt diese Datei gezippt auch hier als Download: single.php
    Achtung: die Kategorie-ID muss natürlich entsprechend angepasst werden!

So, das war’s auch schon – mehr gibt’s nicht zu tun. Die neue single.php fungiert sozusagen als Weiche: wichtig ist dabei die Abfrage in_category (as opposed to: is_category), die überprüft, ob der betreffende Beitrag zur Kategorie mit der angegebenen ID gehört. Falls ja, so bekommt der Beitrag in unserem Beispiel das single-anders.php zugewiesen, wenn nicht, so kommt stattdessen die Vorlage single-standard.php (also die ehemalige single.php) zum Einsatz.

strong>Nochmal Achtung: beim Copy-Pasten unbedingt die Anführungszeichen korrigieren! Und: die Abfrage in_category versteht die übliche Angabe mehrerer durch Beistriche getrennter IDs nicht. Stattdessen muss man auf php zurückgreifen, also:

if ( in_category(’34′) ) || in_category (15) || in_category (16)

Wer mit der kategoriebasierten Filterung nichts anfangen kann, sollte einen Blick auf das Custom Post Templates werfen: es überprüft, ob im -Verzeichnis eine Datei mit dem Namen single-POSTID (POSTID steht für die ID des einzelnen Beitrags) existiert – falls ja, wird diese für den jeweiligen Beitrag verwendet: so ließe sich problemlos ein myspace- gestalten, in dem jedes Posting völlig anders aussieht :-)


(1) Wer die betreffende(n) Kategorien nur für die Designumstellung benutzen und ansonsten ausblenden will, kann diese problemlos beim Kategorie-Listen-Aufruf ausfiltern, siehe Wordpress Codex.

2) Manche Themes haben keine solche single-Datei, sondern benutzen eine Abfrage in der index.php – die hier beschriebene Vorgangsweise funktioniert trotzdem, allerdings muss man natürlich beide single-Varianten erst erstellen.

11 Kommentare zu „Unterschiedliche Templates für Einzelbeiträge“

  • hey richie, schöner beitrag. ich hatte mir diese frage auch schon gestellt. was ich schade finde, dass man für seiten einzelne templates aussuchen kann, aber nicht für artikel selbst. dein “tweak” ist klasse, trotzdem finde ich es erstaunlich, dass diese funktionalität in wordpress nicht standard ist. besonders, wenn man längerer artikel wie anleitungen schreibt, machen abgestimmte templates sinn.

    direkt antworten

  • Ich habe dieses Problem mit einer Wordpress Variable gelöst. Ist diese gesetzt, wird in diesem Trigami-Fall keine Werbung angezeigt:

    if(get_post_meta($post->ID, ‘TrigamiArtikel’)) {
    echo “”;
    } else {
    wp_ozh_wsa(”google-rot”);
    }

    Aber trotzdem danke für deinen Artikel. Mehrere Templates machen natürlich auch an anderer Stelle Sinn.

    direkt antworten

    Sehr elegante Methode, gute Idee :mrgreen:

    direkt antworten

  • Anonymous sagte am 3. January 2008 um 17:19

    Wäre es nicht noch schöner den Namen der Kategorie zu verwenden, statt ihrer ID?
    (vorausgesetzt das ist möglich)

    direkt antworten

  • Eine super Idee, die ich mir definitiv mal genauer anschauen werde, wenn ich Zeit finde, da es mir durchaus entgegenkommen würde. Nicht zuletzt wegen der “automatischen” Kennzeichnung…

    Vielen Dank für deine Mühe und das Tut…

    Beste Grüße aus Berlin

    Tobi

    direkt antworten

  • YAvuz sagte am 5. March 2008 um 12:29

    Wie du bereits ganz zum Schluss beschrieben hast, in meinem theme gibt es keine single.php
    Wie wende ich das dies genau in dem Fall an?!

    direkt antworten

    Kommt drauf an, wie dein theme aufgebaut ist – verwendest du die single-view gar nicht, oder ist die im index via php-Abfrage eingebaut? Ich nehme an zweiteres, sonst bräuchtest du ja kein template für einzelne beiträge. Du könntest dann natürlich in der index.php die entsprechenden Abfragen einbauen, wird halt auf Dauer ein bisschen unübersichtlich.

    direkt antworten

    Yavuz antwortete am 5. March 2008 um 19:56

    Ich nutze dieses theme:
    http://www.revolutiontheme.com.....ution-tech

    direkt antworten

    Ah, verstehe – das ist sehr stark angepasst und eher magazinartig aufgebaut… kenn’s nicht im Detail, da bin ich überfragt.

    direkt antworten

Kommentieren

datenschmutz Fotos

Multitasking. bcv08 - Barcamp Vienna 2008
Neueste Posts
  • Behaltet euer geistiges Eigentum!
    Jul 3, 2009
    Wer stiehlt hier eigentlich wessen geistiges Eigentum? In diesem Titanic-Text stecken mehr Körnchen Wahrheit als in sämtlichen Studien zu Copyrightverletzungen zusammen. ...
  • Nokia 5800: Konkurrenz fürs iPhone?
    Jul 3, 2009
    Mit Touchscreen, massiv viel Speicher und multimedia-tauglicher Ausstattung präsentiert sich Nokias 5800 als ernsthafte iPhone Konkurrenz. ...
  • Willkommen am neuen Server!
    Jul 1, 2009
    Willkommen am neuen Server - datenschmutz wird ab sofort von einem Quadcore mit 8 Gigabyte RAM angetrieben. ...
  • Gewinn die Linzertorte!
    Jun 30, 2009
    So einfach konnte man noch nie zu einer Original Linzertorte kommen: einfach bis zum 3. Juli @linzerschnitte auf Twitter folgen, und Sie sind bei der Verlosung dabei. ...
  • Blogistan Panoptikum KW26 2009
    Jun 29, 2009
    Jede Menge Spekulationen rund um Facebook, jede Menge Clients für Twitter - das alles und mehr im aktuellen Blogistan-Panoptikum auf datenschmutz! ...
  • Nachruf: Der Moonwalk stirbt mit Michael Jackson
    Jun 26, 2009
    Im Alter von 50 Jahren verstarb Michael Jackson an einem Herzstillstand - paradoxerweise wenige Tage vor der geplanten Comeback-Konzertserie. ...
  • Fake! Youtube-Kinoabend im MuQa
    Jun 24, 2009
    Am 7. Juli lädt die Forschungsgruppe Internet zu einem Youtube-Kinoabend ins Wiener Museumsquartiert - das Motto der Kurzfilmschau lautet "Fake! Realität und Illusion." ...
  • Wenn Playboy-Bunnies Liebe machen
    Jun 24, 2009
    Nicht nur Hugh Hefner hat seine Bunnies - dank diesem personalisierbarem Video kann sich jeder mit Bunny-Liebesgrüßen brüsten. ...
  • Die Vorteile des Online-Einkaufs
    Jun 23, 2009
    Wer schon mal in einer Umkleidekabine belästigt worden ist, weiß die ruhige Abgeschiedenheit des eigenen Wohnzimmers zu schätzen. ...
  • Offset-Visitenkarten aus dem Netz
    Jun 22, 2009
    Logiprint hat sich auf Offset-Druck spezialisert und erlaubt den Upload eigener Visitenkarten-Vorlagen. ...
  • Blogistan Panoptikum KW25 2009
    Jun 22, 2009
    Das Blogistan-Panoptikum ist zurück - nach einwöchiger Pause gibt's mehr zu berichten denn je! ...
  • Sport vs. Drogen: Doping-Doku am Montag auf ATV
    Jun 19, 2009
    Doping ist längst nicht mehr ausschließlich die Domäne von Profi-Sportlern - auch eine Art Vorbildwirkung. Am Montag führt die neue ATV-Doku durch den Doping-Dschungel. ...
  • Romi Szeliga: Humor ist der Knopf...
    Jun 17, 2009
    Der Mitgründer der österreichischen Cliniclowns hielt auf der Identitat09 eine äußerst unterhaltsame Keynote zum Thema Humor und Unternehmen - ich Anschluss an den Vortrag hab ich den Internisten unter anderem nach den physiologischen Auswirkungen des Lachens befragt. ...
  • Geschmacklos identitätsstiftend: Stimmen zur Internetrat-Session
    Jun 16, 2009
    Heute veranstaltet der ÖIR ein Barcamp bzw. Ratcamp an einem hochgeheimen Ort, denn es gilt, unter strengstem Ausschluss jeglicher unkritischen Öffentlichkeit die weiteren Vorgehensweisen zu besprechen. ...
  • Review: Kundenkontakte im Überblick mit ACT!11
    Jun 15, 2009
    ACT!11 präsentiert sich als einsteigerfreundliches Rundum-CRM-Sorglospaket. ...