Im ersten Teil des Custom Post Types-Artikels habe ich die praktische WordPress-Option, eigene Inhaltstypen anzulegen in der Theorie erklärt. Heute geht es dagegen in die Praxis und ich beschreibe dir, wie du dein WordPress-Theme selbst mit Custom Post Types und Custom Taxonomies ausstatten und somit WordPress zu einem starken Content Management System machen kannst.

1. Eigene Custom Post Types im Theme anlegen

Im ersten Artikel-Teil über die Custom Post Types in WordPress habe ich ja schon das hilfreiche Plugin Custom Post Type UI vorgestellt, um neue Custom Post Types und Taxonomies zu erstellen.

Natürlich kannst du auch auf ein Plugin verzichten und den benötigten Code selbst in deine Theme-Dateien einfügen.

1.1. Custom Post Types über die functions.php anlegen

Um z.B. den Custom Post Type “Projects” für ein individuelles Portfolio-Element in WordPress umzusetzen, öffnest du die functions.php Datei deines Themes und fügst folgenden Code ein:

[php]
function post_type_projects() {
register_post_type(
‘projects’,
array(
‘label’ => __(‘Projects’),
‘public’ => true,
‘show_ui’ => true,
‘supports’ => array(
‘title’,
‘editor’,
‘post-thumbnails’,
‘custom-fields’,
‘revisions’)
)
);
}
add_action(‘init’, ‘post_type_projects’);
[/php]

Im Code wird die WordPress-Funktion register_post_type genutzt, um den neuen Inhaltstyp zu definieren. Unter Supports kannst du festlegen, welche Felder du für das Verfassen deiner individuellen Inhalte (in diesem Fall der Projekte) benötigst.

Eine genaue Beschreibung zu den möglichen Argumenten für register_post_type findest du im WordPress Codex. Auch auf dem Blog von Justin Tadlock im Artikel “Custom Post Types in WordPress” kannst du noch mehr über die Funktion und die zusätzlichen Optionen erfahren.

Der neue Bereich Projects ist jetzt in deinem Admin-Menü integriert. Um ein neues Projekt anzulegen, kannst du einfach auf Projects / Erstellen klicken.

WordPress Custom Post Types anlegen
Jetzt kannst du ein neues Projekt für dein Portfolio erstellen.

1. 2. Custom Taxonomies für den neuen Inhaltstyp erstellen

Um jetzt auch noch eigene Werte (genannt Taxonomies, diese sind mit den Schlagwörtern und Kategorien zu vergleichen) für deine Projekte im Admin-Bereich anlegen zu können, kannst du wieder über den Code in der funtions.php noch eigene Custom Taxonomies anlegen.

So kannst du z.B. auf deinen Projektseiten angeben, mit welchen Techniken (Skills) bei den Projekten gearbeitet wurden. Dazu legst du dir die Taxonomie “Skills” an, um dort Werte wie HTML, CSS, WordPress, Photoshop oder Illustration eingeben zu können.

WordPress Custom Post Types anlegen

Dazu erweiterst du deinen Code in der functions.php Datei um den Absatz register_taxonomy:

[php]
function post_type_projects() {
register_post_type(
‘projects’,
array(
‘label’ => __(‘Projects’),
‘public’ => true,
‘show_ui’ => true,
‘supports’ => array(
‘title’,
‘editor’,
‘post-thumbnails’,
‘custom-fields’,
‘revisions’)
)
);

register_taxonomy( ‘skills’, ‘projects’,
array(
‘hierarchical’ => false,
‘label’ => __(‘Skills’),
‘query_var’ => ‘skills’,
‘rewrite’ => array(‘slug’ => ‘skills’ )
)
);
}
add_action(‘init’, ‘post_type_projects’);
[/php]

Neben dem Eintragen neuer Skills innerhalb der Meta-Box während des Schreibens, kannst du deine Custom Taxonomies “skills” jetzt auch über das Menü im Admin-Bereich Projects / Skills verwalten und anpassen.

WordPress Custom Post Types anlegen

Die Skills funktionieren also genauso, wie die Schlagwörter und Kategorien bei WordPress-Seiten und Artikeln.

Weitere Infos und eine genaue Erklärung zu den Custom Taxonomies findest du auch im Artikel “Introducing WordPress 3 Custom Taxonomies” auf dem Nettuts-Blog.

1.3. Ein individuelles Template für den neuen Inhaltstyp

Standardmäßig greift der Custom Post Type-Inhalt auf das Theme-Template single.php oder alternativ auf index.php zu. Um ein eigenes Seiten-Layout für deinen neuen Inhaltstyp, z.B. deine Projektseiten zu erstellen, kannst du eine neue Template-Datei names single-projects.php in deinem Theme-Ordner anlegen. Am besten du nimmst dir die single.php Datei als Vorlage, und veränderst die Inhalte entsprechend deiner Vorstellungen.

Z.B. kannst du die Sidebar (get_sidebar) entfernen, um deine Projekte über die gesamte Webseiten-Breite präsentieren zu können. Auch die Kommentar-Funktion (comments_template) benötigst du für deine Projekten höchstwahrscheinlich nicht.

1.4. Die Custom Taxonomies im Template ausgeben

Um deine neu angelegten Custom Taxonomies (hier im Beispiel also die Skills) in der single-projects.php Datei mit auszugeben, benötigst du die Funktion get_the_term_list.

Der Code, um die Skills für dein Projekt mit auszugeben, lautet:

[php]
<?php echo get_the_term_list( $post->ID, ‘skills’, ‘Projektumsetzung mit: ‘, ‘, ‘, ” ); ?>
[/php]

Weitere Info über get_the_term_list findest du auch im WordPress Codex.

Weitere Layout-Anpassungen kannst du dann natürlich auch noch mit Hilfe von HTML und entsprechenden CSS-Styles umsetzen.

2. Custom Post Types und Taxonomies mit dem Custom Post Type UI-Plugin erstellen

Falls dir die beschriebene Methode doch etwas zu viele Codeschnipsel enthält, kannst du alternativ auch eines der hilfreichen Plugins für das Anlegen von Custom Post Types und Custom Taxonomies nutzen.

Für das Plugin Custom Post Type UI hat der Plugin-Autor Brad Williams ein praktisches, kleines Video-Tutorial für die Verwendung des Plugins vorbereitet:


Custom Post Type UI Screencast von Brad Williams auf Vimeo.

3. Custom Post Types und Permalinks

Falls du beim Aufrufen deiner neuen Inhalte nur eine 404-Fehlermeldung siehst, kann es sein, dass du die die Permalink-Einstellungen im WordPress-Admin noch einmal neu speichern musst.

Falls das nicht hilft kannst du in deiner functions.php Datei die Funktion flush_rewrite_rules einfügen. Diese solltest du aber nur bei Aktivierung oder Deaktivierung tun. Mehr Infos zu Custom Posts Types und Permalinks findest du auch im Artikel “Custom Post Types and Permalinks” auf WPEngineer und auf Frank Bültges Blog unter “WordPress Custom Post Type und Permalinks”.

Um auch ein Archiv, z.B. unter deindomain.de/projects/ anlegen zu können (was leider bisher noch nicht standardmäßig der Fall ist), kannst du übrigens das Plugin Simple Custom Post Type Archives verwenden.

4. Noch mehr Lesestoff

Wie gesagt gibt es etliche hilfreiche Blog-Artikel, die das Thema Custom Post Types in WordPress bereits aufgenommen haben. Um dein Wissen über die praktische WP-Funktion noch zu erweitern, kannst du dir folgende Beiträge anschauen. Am besten probierst du die Funktion auch einmal selbst auf einer lokalen WordPress-Testinstallation aus. So bekommst du am schnellsten ein Bild davon, was mit den Custom Post Types so alles möglich ist.

Hast du Fragen oder weitere Tipps zur Verwendung der Custom Post Types in WordPress oder kennst du Tutorials oder interessante Blog-Artikel, die sich mit der Umsetzung von individuellen Inhalten in WordPress auseinandersetzen? Über dein Feedback und deine Tipps freue ich mich sehr!