Artikelformat

Custom Post Types / Custom Taxonomies

Seit WordPress 3.0 ist es möglich, eigene Inhaltstypen zu erstellen. Hierzu steht die Funktion register_post_type(); zur Verfügung.

[wenn member]Beispiel: Erstellung eines Inhaltstyps ‘Buch’

add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'buch',
array(
'labels' => array(
'name' => __( 'Bücher' ),
'singular_name' => __( 'Buch' )
),
'public' => true,
)
);
}

Der Funktion register_post_type(); können eine Reihe von Argumenten mitgegeben werden[end]

Standardmäßig gibt es bei WordPress drei Taxonomie-Typen: Kategorien für Artikel, Kategorien für Links und Tags.

Mit der Funktion register_taxonomy(); ist es möglich, eigene Taxonomie-Typen zu erstellen und diese einem Inhaltstyp zuzuordnen.

Beispiel:

//neue Funktion per add_action an den ‘init’ hook binden
add_action( ‘init’, ‘create_book_taxonomies’, 0 );

//zwei Taxonimen für den Inhaltstyp “Buch” erstellen: Genre und Autoren
function create_book_taxonomies()
{
// Neue hierarchische kategorieähnliche Taxonomien erstellen
$labels = array(
‘name’ => _x( ‘Genres’, ‘taxonomy general name’ ),
‘singular_name’ => _x( ‘Genre’, ‘taxonomy singular name’ ),
‘search_items’ =>  __( ‘Suche Genres’ ),
‘all_items’ => __( ‘Alle Genres’ ),
‘parent_item’ => __( ‘Hauptgenre’ ),
‘parent_item_colon’ => __( ‘Hauptgenre:’ ),
‘edit_item’ => __( ‘Genre bearbeiten’ ),
‘update_item’ => __( ‘Genre aktualisieren’ ),
‘add_new_item’ => __( ‘Genre hinzufügen’ ),
‘new_item_name’ => __( ‘Neues Genre’ ),
);

register_taxonomy(‘genre’,array(‘buch’), array(
‘hierarchical’ => true,
‘labels’ => $labels,
‘show_ui’ => true,
‘query_var’ => true,
‘rewrite’ => array( ‘slug’ => ‘genre’ ),
));

// Add new taxonomy, NOT hierarchical (like tags)
$labels = array(
‘name’ => _x( ‘Autoren’, ‘taxonomy general name’ ),
‘singular_name’ => _x( ‘Autor’, ‘taxonomy singular name’ ),
‘search_items’ =>  __( ‘Autor suchen’ ),
‘popular_items’ => __( ‘Beliebte Autoren’ ),
‘all_items’ => __( ‘Alle Autoren’ ),
‘parent_item’ => null,
‘parent_item_colon’ => null,
‘edit_item’ => __( ‘Autor bearbeiten’ ),
‘update_item’ => __( ‘Autor aktualisieren’ ),
‘add_new_item’ => __( ‘Autor hinzufügen’ ),
‘new_item_name’ => __( ‘Neuer Autor’ ),
‘separate_items_with_commas’ => __( ‘Mehrere Autoren mit Komma trennen’ ),
‘add_or_remove_items’ => __( ‘Autoren entfernen oder hinzufügen’ ),
‘choose_from_most_used’ => __( ‘Choose from the most used writers’ )
);

register_taxonomy(‘autor’,'buch’,array(
‘hierarchical’ => false,
‘labels’ => $labels,
‘show_ui’ => true,
‘query_var’ => true,
‘rewrite’ => array( ‘slug’ => ‘autor’ ),
));
}

Um den neuen Inhaltstyp auf der Webseite auszugeben, gibt es für die Darstellung einer Seite, die alle Artikel eines Inhaltstyps auflistet das Plugin Simple Custom Post Types. Nach Installation muss man nun nur noch ein Kategorietemplate für den neuen Inhaltspunkt erstellen und diese dann unter type-(custom-post-type-name).php im Themeordner abzuspeichern (im Falle des obigen Beispiels also type-buch.php).

Alternativ kann man auch selber die Wiedergabe über einen Eintrag in der functions.php steuern, indem man den template_redirect Hook benutzt werden (Beispiel)

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.

*