- WordPress Cheat Sheet
Welches Template nutzt WordPress wann – auf diese Frage gibt mein Template Cheat Sheet die Antwort. Dieser Template Cheat Sheet hilft Theme Autoren genauso wie jedem, der einfach spezielle Sachen in seinen Templates realisieren mag.
WP 3.0 bringt viele neuen Templates – und viele neue Conditional Comments – ich empfehle zu lesen – und dann das neue Cheat Sheet herunterzuladen. ==> gleich danach drüber Twittern und weitersagen
WordPress Cheat Sheet Download:
Im Download ist das große Bild 3072 X 2304 und eine .pdf Datei enthalten.
»Download Template Hierarchie «
Die nützlichen Conditional Tags habe ich auch gleich dazugetippt. Conditonal Tags sind Bedingungsabfragen.
Einige außergewöhmliche Conditional Tags findet man dann hier im Artikel. Außerdem gebe ich -soweit gefunden- auch gleich Linktipps.
WP Template Hierarchie
WP erkennt bis auf “yourname.php” all diese angeführten Templates, wenn sie im jeweiligen Theme Ordner vorhanden sind und wenn sie genau die angeführten Namen haben.
Was muss ein WordPress Theme unbedingt haben
- index.php
- style.css
Alles andere ist *Zusatz*
home.php
Wer als Startseite nicht die klassische Blogansicht haben mag, sondern eventuell statischen Text, kann eine home.php erstellen.
Gibt es diese nicht im Theme Ordner nimmt WP automatisch die index.php.
Conditonal Tags fragen nach einer Bedingung.
z.B.: Wenn Startseite dann gib die class current_page_item zurück:
<?php if (is_home()) echo " class=\"current_page_item\""; ?>
Oder seit WP 2.5
<?php if (is_front_page()) echo " class=\"current_page_item\""; ?>
Nutzt man eine statische Seite als Startseite ist man mit is_front_page besser dran.
Linktipps:
- Home Seite gestalten
- Loop Spielereien
Einzelansichten, Posttypes, Darstellung eines Artikels
single.php
Die single.php zeigt einen Artikel in der Einzelansicht an. Ist sie nicht vorhanden nimmt WP dafür die index.php.
Seit WP 3.0 kann man unterschiedliche Posttypes selbst erstellen. Dazu kommt noch ein Artikel, soweit sei erwähnt:
single-posttype.php==>single.php==>index.php
Conditonal Tags für die Abfrage, ob es die Einzelansicht ist:
- is_single() einfach bei jeder Singleansicht.
- is_single(’3′) nur beim Artikel mit der ID 3.
- is_single(‘Oh Nein’) nur für den Artikel mit dem Titel Oh Nein.
- is_single(‘ichbingut’) nur beim Artikel mit dem Postslug:ichbingut.
- is_single(array(3,’ichbingut’,'Oh Nein’)) wenn es entweder die Single mit der ID 3 oder dem Titel Oh Nein oder dem Postslug ichbingut gibt.==> Achten auf die Schreibweise:case sensitiv!
Linktipp:
is_singular()
Der conditaional Tag is_singular fragt alle Einzelansichten ab: vom Bild, Video, (pseudo)statische Seite, Einzelansicht des Artikels, die Kommentare etc.
Is_singluar fragt jede Einzelansicht ab, das kann statische Seite, Bildanhang, Video.php etc sein. Is_single fragt nur die Einzelansicht eines Artikels ab!
attachment.php
Die single.php kann aber auch ganz automatisch die image.php für die Anzeige von Bildern nutzen. Gibt es die image.php nicht, nimmt WP die attachment.php, gibt es diese auch nicht, nimmt WP die single.php. Außerdem gibt es die video.php, audio.php und application.php- jedes Mal gilt ist eine von diesen nicht da, kommt die attachment.php danach die single.php.
video.php, text.php.image.php (also jeder MimeType) ==> attachment.php==>single.php==>index.php
AB WP 2.9 kann man für jeden MIME Type ein eigenes Template erstellen. text.php, video.php etc etc…
Conditional Tag
- is_attachment ()
Kommentare
comments.php comments-popup.php
Mag man Kommentare nutzen braucht man entweder die comments.php oder die comments-popup.php.
Die comments-popup.php zeigt Kommentare als Popup an, doch dazu braucht es auch einen Eintrag in die header.php -also in den html header und zwar zwischen head und /head.
<?php comments_popup_script(); ?>
In der single.php oder index.php muss man dann diese Popups so aufrufen.
Dieser Code ist gleich für ein lokalisiertes Theme. “mtsretro50″ mit dem eigenen Namen ersetzen.
<?php comments_popup_link(__('No Comments','mtsretro50'), __('1 Comment','mtsretro50'), __('% Comments','mtsretro50'), '', __('Comments off','mtsretro50')); ?>
virtuelle statische Seiten mit WordPress
yourname.php page-slug.php page-id.php page.php
ab WP 2.9:
yourname.php, page-slug.php page-ID.php page.php
WP kennt (virtuelle) statische Seiten, diese sind aus der Chronologie der anderen Artikel ausgenommen. Außerdem wird bei statischen Seiten kein Update Service benachrichtigt.Also kein Ping an Technorati etc gesendet. (dafür gibt es allerdings ein Plugin!)
Dafür nimmt WP die page.php oder eben die index.php.
yourname.php==>page-slug.php ==>page-ID.php ==>page.php ==>index.php
yourname.php
Mag man selber eine statische Seite gestalten, dann muss man dieser einen Namen geben und im
Admincenter==>Schreiben==>Seite nach unten scrollen und dort das Template dann auswählen.
Sinnvoll ist es das template so zu benennen wie die statische Seite dann heißt, dies hilft einfach dem Überblick, daher auch yourname.php.
Folgendes muss man ganz oben in der yourname.php hineintippen.
<?php /* Template Name:Dein Name */ ?>
ab WP 2.9: page-slug.php und page-ID.php
diese braucht man nur in den Theme Ordner zu legen und WP 2.9 erkennt sie automatisch.
Conditional Tags:
- is_page() jede statische Seite
- is_page(’4′) nur die mit der ID 4
- is_page(‘email’) nur die mit dem Postslug Email.
is_page_template
Seit WP 2.5. gibt es den neuen Conditional Tag is_page_template, dazu muss man den Dateinamen des Templates einfügen:
Wenn ein bestimmtes page template im Einsatz ist, dann mache…
is_page_template('about.php')
Unterseiten
Für Unterseiten gibt es keinen Conditional Tag, aber man kann sich so abhelfen:
<?php // Get $post if you're inside a function global $post; if (is_page() && $post->post_parent ) { // This is a subpage } else { // This is not a subpage } ?>
zB um unterschiedliche Header Bilder anzuzeigen, aber diese auch für die Unterseiten nutzen.
<?php if (is_page(about) || $post->post_parent=="2") { $bannerimg="home.jpg"; } elseif (is_page(urlaub) || $post->post_parent=="56") { $bannerimg="tmeer.jpg"; } elseif (is_page(reise) || $post->post_parent=="15") { $bannerimg="flugzeug.jpg"; } else { $bannerimg="home.jpg" ; // Fall-through } ?>
Linktipps:
- Statische Seite zeigt Artikel aus einer bestimmten Kategorie an
- Und weil dies sooft gefragt wird: Weiterblättern.
- mehrere statische Seiten auf einer statischen Seite anzeigen lassen
- eigene Sitemap erstellen
Alles was mit *archivieren* zu tun hat Zeitarchive, Kategorien, Tags, Taxonomien
category-slug.php category-ID.php category.php
ab WP 2.9 :category-slug.php kommt dazu.
Dies wird eine große Erleichterung, denn man hat mehr Überblick im Theme Ordner
Die Kategorieansicht zeigt WP mit der category.php, gibt es diese nicht nimmt es die archive.php, ist die auch nicht da, dann eben die index.php.
category-slug.php==>category-id.php==>category.php==>archive.php==>index.php
Mag man nur die category mit der ID 7 anders aussehen lassen als andere categorien, kann man dies mit dem template category-7.php realisieren.
Conditional Tags:
- is_category() jede Kategorie /Rubrik
- is_category(’7′) nur die mit der ID 4
- is_category(‘tipps-und-tricks’) nur die mit dem Postslug tipps-und-tricks.
- is_category(‘Lesen’) nur die mit dem Titel Lesen.
- is_category(array(7,’tipps-und-tricks’,'Lesen’)) entweder bei der Kategorie mit der ID 7 oder dem Postslug tipps-und-tricks oder dem Titel Lesen.
Unterschied zwischen IS_ oder IN_category
Is_category wird gerne mit in_category verwechselt. Das erste fragt: ist es die Kategorie das 2. fragt ob etwas IN einer Kategorie ist und funktioniert nur innerhalb des Loops.
Linktipps:
- Bei jeder Kategorie soll ein Text dabei stehen.
- Plugin Magic Kategorie
date.php
Vielleicht mag wer auch nur ein Jahresarchiv anders gestalten oder einen speziellen Monat, dafür gibt es die date.php. Ist die nicht vorhanden nimmt WP die archive.php oder dann die index.php.
date.php==>archive.php==>index.php
Conditional Tags:
- is_date() für alle Datumsbezogenen Archive wie Monat, Jahr, Tag etc.
- is_year() Nur für das Jahreaarchiv-
- is_month() Wenn ein Monatsarchiv gezeigt wird.
- is_day() Wenn es ein Tagesarchiv sein soll.
- is_time() Wenn es die Stunde, Minute, Sekunde ist.
tag-slug.php tag-id.php tag.php
ab WP 2.9 erkennt WP auch tag-ID.php.
Tags – die Schlagwörter oder Stichworte haben auch ihr eigenes template, wenn man mag. Ja sogar jedes Schlagwort kann sein eigenes template haben.
zB.: Tag heißt “hoffnung”, dann erstellt man die tag-hoffnung.php. Ist keine tag-slug.php da sucht WP die tag.php, ist die nicht da nimmt WP die archive.php, fehlt auch die einfach die index.php.
tag-slug.php==>tag-id.php==>tag.php==>archive.php==>index.php
Conditional Tags:
- is_tag() wenn einfach ein Schlagwort angezeigt wird.
- is_tag(‘hoffnung’) Nur dann , wenn das Schlagwort Hoffnung auftaucht.
- is_tag(array(‘hoffnung’,'mild’,'wetter’)) Wenn entweder das Schlagwort hoffnung oder mild oder wetter vorhanden ist. ==> auf die Groß-Kleinschreibung achten!
taxonomy-taxonomy-term.php, taxonomy-taxonomy.php taxonomy.php
Du kannst Artikel nun mittels Kategorien, Tags und Taxonomien ordnen.
Die Taxonomien fallen somit unter dem Hauptbegriff des “Archives”.
taxonomy-taxonomy-term.php==> taxonomy-taxonomy.php==> taxonomy.php==>archive.php==>index.php
Taxonomien werden nicht alle Blogger brauchen, aber die die viel zu sortieren haben, die reiben sich jetzt sicher vor Freud die Hände über WP 3.0
conditional Tags:
- is_tax() wenn eine Taxonomy Archivseite auftaucht.
- is_tax(‘buecher’) nur die Taxonomie Archive mit der URL *buecher* ==>case sensitive(!)
- is_tax(array(‘buecher’,'autor’,'krimi’)) nur für die Txonomie Archivseiten mit der URL:entweder buecher oder autor oder krimi
is_taxonomy() fragt ab, ob eine bestimmte Taxonomie bei WP registriert wurde.
author-nicename.php author-id.php author.php
Mag man seinen Autoren eine eigene Seite gönnen, dann nutzt man die author.php ist die nicht vorhanden nimmt WP die archive.php,fehlt auch die dann die index.php.
author-nicename.php==>author-id.php==>author.php==>archive.php==>index.php
Conditional Tags:
- is_author() jeder Autor
- is_author(’9′) nur der Autor mit der ID 9
- is_author(‘eva’) nur die Autorin Eva
- is_author(‘pet’) nur der Autor Pet
- is_author(array(9,’pet’,'eve’)) entweder wenn es der Autor mit der ID 9 ist oder Pet oder Eve
Admin
Den Admin fragt man am leichtesten mit
is_admin() ab
Such- und Error 404 (not found) Anzeige
search.php
Es gibt einen eigenen Template Tag für die Suche:
get_search_form()
Mag man jedoch das Suchformular selbst gestalten kann man dies nach wie vor in der searchform.php.
In der search.php werden die Suchergebnisse angezeigt, ist diese nicht vorhanden nimmt WP dafür die index.php.
Wer seine Startseite wirklich komplett anders gestaltet hat ist gut daran eine eigene search.php zu erstellen.
Man dazu ganz einfach die archive.php oder category.php öffnen und als search.php speichern. Das ist die simpelste Möglichkeit.
search.php==>index.php
Conditional Tag:
- is_search()
Rein theoretisch kann man auch hier is_search(‘search-term’) angeben, nur wer weiß so ganz genau wonach die User suchen
.
search-term ist das Suchwort.
404.php
Dies ist die Fehlerseite, die auftaucht, wenn es eine URL, ein Bild, einen Anhang etc. nicht mehr gibt. Auch als Error 404 bekannt. Es ist ratsam seine eigene 404.php zu erstellen, so verärgert man User nicht, wenn etwas nicht mehr gefunden wird.
Ist die nicht vorhanden nimmt WP die index.php dafür.
404.php==> index.php
Conditional Tag:
- is_404()
Linktipp:
Ab da wirds WordPress Theme machen einfach lustvoll und spannend:
functions.php
Die functions.php erkennt WP, darin kann man nicht nur Angaben zu Widgets machen, sondern auch eventuell zu einer OptionsPage für das WP Theme oder anderen nötigen Code unterbringen.
loop.php
Die scheint zwar in der Template Hierarchie nicht auf, aber Twenty Ten ist da ein tolles Anschauungsgebiet und ich werde mich da sicher näher drauf einlassen.
Alle loops in ein template packen.
Andere Conditional Tags
is_paged
is_paged fragt ab, ob etwas “geblättert” wird. Also ob es Seite 1 oder Seite 3 gibt. is_paged hilft nicht, wenn man einen Artikel oder eine statische Seite mit >– nextpage–< umgebrochen hat. Dafür gibt es keine Abfrage, dies mußte ich schmerzlichst selber erfahren
is_feed()
Fragt ab, ob ein Feed vorhanden ist. Dies nutzen nur Plugin Autoren, der Enduser braucht dies kaum, genauso wie
is_trackback()
Fragt ab, ob ein Trackback vorhanden ist.
is_sticky
Fragt ab, ob der Artikel festegepinnt also *sticky* ist-man kann auch mit der ID des Artikels genau den bestimmten Artikel abfragen.
Fazit
Ohne index.php geht nichts
. Das minimalistischste WP Theme hat eine index.php und eine style.css, eventuell noch den Ordner “images” für Bilder des Layouts.
Kommentare als Popups findet man kaum noch wo. Am ehesten bei Fotoblogs.
weiterführende Links
Download des Template Sheets über die WP Template Hierarchie
Download Template Hierarchie .
Herunterladen, entpacken, ausdrucken. Auf A4 gut lesbar, ich habe es ausprobiert
Ich drucke mir solche Sheets immer auf Kartonpapier aus und laminier dieses dann. Manch einer mag es vielleicht in einer Folie griffbereit haben.
war dies hilfreich für Dich, dann..
dann blogge darüber
twitter es weiter
meld es bei Deinem Social Network
Danke!
Artikelhistorie:
Erstveröffentlichung: 08.06.2008
Update am 22.09. 2009 – neue Templates gibt es und einige neue Conditonal Comments.
Update am 29.11.2009 – die neuen Templates für WP 2.9 hinzugefügt, Darstellung entschlackt und Download als .pdf hinzugefügt,
neuen Counter installiert bis dato 4421 downloads im Jahr 2009. Im Jahr 2008 habe ich nicht gezählt.
Update am 28.06.2010:
vom Nov.09-Juni 10- 1102 Downloads, [insgesamt 5523 Downloads seit Sept. 09] Counter wird zurückgestellt.
Neues .pdf., neues Bild, Erweiterung der conditional comments und der Erklärungen der neuen Templates.
Ralf
30.09.08 um 23:27Hallo,
darf ich eine Frage zu Abfragen stellen, deren Lösung ich mir schon den zweiten Abend nicht ergooglet bekomme?
Ich möchte auf der index.php Inhalte einfügen in Abhängigkeit von der Kategorie, in der sich Posts befinden. Die Abfrage etwa: Wenn ich mich in der Kategorie #6 befinde (is_category(’6′)) oder in einem Post (is_single()), der zur Kategorie #6 gehört, dann echo blabla. Wie schaffe ich die Verbindung “Post aus einer Kategorie”?
Danke für jede Hilfe
Ralf
texto
01.10.08 um 13:05Hi Ralf Du magst – so ich verstand – nicht abfragen
is category , weil dies bedeutet ja *wenn es die Kategorie ist*, sondern Du magst,
wenn
also wenn der Artikel IN der Kategorie 6 ist
oder?
lg
Ralf
01.10.08 um 13:52Ja, Texto, stimmt genau. Ich las jedoch, dass in_category nur in Loops funktioniert und nicht in einer Abfrage. Und es klappte bei meinem Test auch nicht. Wie sähe denn die Abfrage dann aus?
lg
Ralf
Ludwig
16.03.09 um 08:54Hallo,
der Artikel ist ja schon eine Weile her, ich möchte dennoch anknüpfen.
Wie kann ich es denn erreichen, dass in der single.php nur etwas angezeigt wird, wenn es beispielsweise vom Admin geschrieben wurde?
Folgendes funktioniert leider nicht:
if (is_author(’1′))
{
echo “Hallo, ich bin der Admin”;
}
Gruß Ludwig
texto
16.03.09 um 10:40Hi Ludwig
hier steht zwar ein Beispiel mit *wenn nicht Autor XYZ*
aber statt dem != kannst Du ja ein == einsetzen
wenn Autor dann mache dies …
lg
Ludwig
16.03.09 um 10:57Das war die Lösung, ich danke dir!
So funktioniert es:
if (get_the_author() == ‘admin’)
{
print “Hallo, ich bin der Admin”;
}
thomas57
22.05.09 um 18:27Hallo,
ohne einen Kommentar kann ich nicht gehen, dieser Artikel ist einfach gut. Nachdem ich mir Dein Bild heruntergeladen habe, werde ich es mir ausdrucken und an die Wand hängen.
Danke schon mal hierfür.
Gruß aus dem Norden von
Thomas
texto
22.05.09 um 18:57das mag ich sehen,
Fotobeweise!
“lachend”
lg
Clarissa
24.05.09 um 11:08Danke für die Infos. Den Link habe ich mir gespeichert. Sollte ich WordPress installieren wird es mir später helfen.
bambus-gegen-mobbing.de
Kai H.
23.09.09 um 06:11Tausend dank! Das Sheet ist echt gold wert!
Andy
23.09.09 um 11:36Hallo Monika,
wieder ein ausgesprochener guter Artikel von dir ! Schau immer wieder gern vorbei und konnte auch schon viel nützliches von deiner Seite verwenden.
Danke
Andy
Nick
05.08.10 um 09:35Hallo,
Ich glaube die Entwickler haben ein fehler drin.
Im neuem WP gibt es ja die Menü-funktion die ich in einem Aktuellen Projekt einsetze.
Klappt auch alles super bis auf das statische Seiten kein current_page_item in der liste vergeben wird. Das ist sehr ärgerlich da ich mit einigen Menü-Elementen auf Kategorien mit einem statischen Link zeige. Für mich ist das ein Bug und macht das Markieren von Aktiven Elementen unbrauchbar, ich kann ja nicht ein paar markieren und ein paar nicht.
Oder gibt es da ein workflow für?
Beste Grüße
Nick
texto
05.08.10 um 17:13hi der Bug müßte in der Version 3.01 behoben sein,
http://core.trac.wordpress.org/ticket/10381
lg
Dave
16.08.10 um 15:42Mittlerweile gibt es soviele schlechtgemachte WordPress-Templates, dass man wirklich froh sein kann – so ein tolles Cheat-Sheet zu finden, um die Dinger einfach weiterhin selbst zu bauen. Vielen Dank dafür..