Hallo zusammen,
hier mal ein paar Infos zur Theme Entwicklung unter WP1.5.
----------
Anatomie eines WP1.5 Themes
Für ein WP1.5 Theme werden im Prinzip nur die folgenden beiden Dateien benötigt.
Zitat* style.css - The main stylesheet. This must be included with your theme.
* index.php - The main template. If your theme provides its own templates, index.php must be present.
Jetzt ist es aber möglich die index.php in die folgenden Dateien aufzusplitten.
ZitatAlles anzeigen
* comments.php - The comments template. If not present, comments.php from the "default" theme is used.
* comments-popup.php - The popup comments template. If not present, comments-popup.php from the "default" theme is used.
* single.php - The single post template. Used when a single post is queried. For this and all other query templates, index.php is used if the query template is not present.
* page.php - The page template. Used when an individual or single post page is queried.
* category.php - The category template. Used when a category is queried.
* author.php - The author template. Used when an author is queried.
* date.php - The date/time template. Used when a date or time is queried. Year, month, day, hour, minute, second.
** year.php - Year template. Used when a year is queried.
** month.php - Month template. Used when a month is queried.
** day.php - Day template. Used when a day is queried.
** time.php - Time template. Used when a time is queried.
** archive.php - The archive template. Used when a category, author, or date is queried. Note that this template will be overridden by category.php, author.php, and date.php for their respective query types.
* search.php - The search template. Used when a search is performed.
* 404.php - The 404 Not Found template. Used when WordPress cannot find a post or page that matches the query.
Beispiel:
Im classic Theme gibt es die folgenden Dateien:
* comments.php
* comments-popup.php
* footer.php
* header.php
* index.php
* sidebar.php
* style.css
Wenn mit diesem Theme ein einzelner Beitrag aufgerufen wird, benutzt WP die index.php um diesen anzuzeigen. Wenn du diesem Theme jetzt die Datei single.php hinzufügst, benutzt WP diese Datei zum Anzeigen einzelner Beiträge. Das gleiche gilt für alle oben beschriebenen Theme-Dateien.
Siehe auch:
http://boren.nu/archives/2004/…ordpress-theme/
http://codex.wordpress.org/Theme_Development
----------
Template-Tags
Um jetzt innerhalb der einzelnen Dateien die entsprechenden WP-Funktionen aufzurufen müssen sogenannte Template-Tags (TT) eingefügt werden. Es gibt einfach zu viele TT um sie hier aufzuführen. Eine Übersicht über alle TT findest du hier:
http://codex.wordpress.org/Template_Tags
TT können mit verschiedenen Parametern versehen werden, wie diese verwendet werden wird hier erklärt:
http://codex.wordpress.org/Template_Tags/…_Tag_Parameters
Dabei ist es wichtig zu beachten ob ein TT innerhalb, oder ausserhalb des Loops verwendet werden können/dürfen. Eine Beschreibung des Loops findest du hier:
http://codex.wordpress.org/The_Loop
Beispiel:
In der Datei sidebar.php des classic Themes sind u.a. die folgenden TT zu finden:
<?php wp_list_pages(); ?> (Auflistung der statischen Seiten)
<?php get_links_list(); ?> (Auflistung der Links)
<?php wp_list_cats(); ?> (Auflistung der Kategorien)
<?php wp_get_archives('type=monthly'); ?> (Auflistung des Archives)
<?php wp_loginout(); ?> (Anmelden/Abmelden)
Um jetzt den Kalender angezuzeigen musst du das folgende einfügen:
<?php get_calendar(); ?>
Möchtest du statt der monatlichen Archivliste lieber eine Wochenanzeige, musst du die Parameter ändern:
<?php wp_get_archives('type=weekly'); ?>
Plugin Verwendung:
Pluginautoren erstellen meist eigene TT die, wie oben beschrieben, in das Theme eingefügt werden müssen. Die Autoren erkären meist sehr genau wie-was-wo gemacht werden muss.
Beachte immer die CSS Feinheiten!!!
----------
Die "is" Funktion:
Um der Theme Entwicklung die Krone aufzusetzen ist es möglich die "is" Funktion zu verwenden. Hier ist eine Liste aller erlaubten Funktionen:
ZitatAlles anzeigen* is_home() - The front page
* is_single() - A single post
* is_page() - A static/standalone page
* is_category() - A category
* is_author() - An author
* is_date() - A year, month, or day
* is_year() - A year
* is_month() - A month
* is_day() - A day
* is_time() - An hour, minute, or second
* is_archive() - A category, author, or date
* is_search() - A search
* is_404() - A 404 page
* is_feed() - A syndication feedFurther, is_single(), is_page(), is_category(), and is_author() can accept an id, name, or nicename. Here are some examples using is_page().
* is_page() - True if a page is being served.
* is_page(3) - True if a page with the ID of 3 is being served.* is_page(’About Me’) - True if the page title is ‘About Me’.
* is_page(’about-me’) - True if the page nicename is ‘about-me’.
Beispiel:
Wenn du jetzt in deinem Theme (zB in der sidebar.php) folgendes benutzt:
...erscheint "Sack Kartoffeln" nur wenn ein einzelner Beitrag aufgerufen wird.
Siehe auch:
http://boren.nu/archives/2004/…e-is-functions/
----------
Ich denke, das macht deutlich wie flexibel die Theme Gestaltung ist. Der Fantasie sind beihnahe keine Grenzen gesetzt und nach ein paar Übungsstunden sollten auch weniger PHP versierte Benutzer damit klarkommen. :wink:
Grüsse,
Olaf