29. Oktober 2015

WordPress individuell Custom Taxonomies für WordPress: eigene Gruppierungen anlegen

   6 Kommentare

Ein Beitrag von Katharina

Share on Facebook0Tweet about this on Twitter0Share on Google+1Share on LinkedIn0Email this to someone

Custom Taxonomies sind ein nützliches Werkzeug, um Inhalte in WordPress nach eigenen Kriterien gruppieren und kategorisieren zu können. Wir zeigen euch, wofür Custom Taxonomies gut sind und wie ihr eigene Taxonomien anlegen könnt.

Speziell im Zusammenhang mit Custom Post Types sind Custom Taxonomies eine wichtige Möglichkeit, WordPress für die eigenen Zwecke anzupassen. Dieser Beitrag ist Teil 2 der Reihe „WordPress individuell“. In den weiteren Beiträgen erklären wir unter anderem, wie ihr Custom Post Types erstellen und auf eurer Seite verwenden könnt.

Teil 1: Custom Post Types erstellen
Teil 2: Custom Taxonomies erzeugen
Teil 3: Custom Post Types & Custom Taxonomies verwenden

Custom Taxonomies: Inhalte nach eigenen Kriterien gruppieren

Mithilfe von Taxonomien werden in WordPress Inhalte bestimmten Gruppierungen zugewiesen. Bereits eingebaute Taxonomien sind zum Beispiel Kategorien oder Schlagworte, die standardmäßig bei Beiträgen vergeben werden können.

Besonders wenn man bereits Custom Post Types verwenden, stoßen Kategorien und Schlagworte allerdings schnell an ihre Grenzen. Die Inhalte passen möglicherweise nicht ins System von bisherigen Beiträgen, ihr wollt sie aber trotzdem irgendwie gruppieren. Das könnt ihr mit Custom Taxonomies tun!

Verwendet ihr beispielsweise Custom Post Types für die Anzeige von Buchrezensionen, könntet ihr eine Taxonomie für das Genre des Buches oder den herausgebenden Verlag erstellen. Custom Taxonomies eignen sich also dafür, Inhalte nach eigenen Kriterien zu gruppieren und können auch zur Anzeige verwendet werden.

Custom Taxonomies erstellen

Wir greifen das Rezepte-Beispiel aus dem Beitrag über Custom Post Types auf: für die Rezepte-Sammlung unseres Lifestyleblogs haben wir schon einen eigenen Post Type kreiert. Jetzt passen die üblichen Kategorien und Tags nicht so recht zu Rezepten, deshalb erstellen wir uns einfach eigene Taxonomien.

Ihr wollt eure Leser beispielsweise wissen lassen, für welche Ernährungsweise das jeweilige Rezept geeignet ist: vegan, low-carb, laktosefrei, usw. Außerdem wollt ihr eure Rezepte nach Arten unterteilen, damit eure Leser gezielt nach Kuchenrezepten, Pasta, Salaten etc. suchen können.

Da wir im Rahmen dieser Anleitung an der functions.php des Themes herumbasteln, empfehlen wir unbedingt den Einsatz eines Child Themes. Wie ihr ein Child Theme erstellen könnt, zeigen wir euch in diesem Beitrag.

Eine eigene Taxonomie definieren

Eine eigene Taxonomie legt ihr mithilfe der Funktion register_taxonomy() in der functions.php eures Themes an:

function custom_taxonomies_rezept() {
    $args = array();
    register_taxonomy( 'ernaehrungsweise', 'rezept', $args );
}

add_action( 'init', 'custom_taxonomies_rezept', 0 );

Die Taxonomie erscheint jetzt bereits im Backend, verwendet allerdings noch die Standardwerte.

Custom Taxonomies anpassen

Um unseren Rezepten eine Ernährungsweise zuzuordnen, wollen wir eine nicht-hierarchische Taxonomie (wie die bereits vorhandenen Schlagworte) erstellen. Das könnte zum Beispiel so aussehen:

function custom_taxonomies_rezept() {
         $labels = array(
               'name'                       => __( 'Ernährungsweisen'),
               'singular_name'              => __( 'Ernährungsweise'),
               'search_items'               => __( 'Ernährungsweisen durchsuchen' ),
               'popular_items'              => __( 'Beliebte Ernährungsweisen' ),
               'all_items'                  => __( 'Alle Ernährungsweisen' ),
               'parent_item'                => null,
               'parent_item_colon'          => null,
               'edit_item'                  => __( 'Ernährungsweise bearbeiten' ),
               'update_item'                => __( 'Ernährungsweise aktualisieren' ),
               'add_new_item'               => __( 'Neue Ernährungsweise hinzufügen' ),
               'new_item_name'              => __( 'Neue Ernährungsweise' ),
               'separate_items_with_commas' => __( 'Ernährungsweisen mit Kommas trennen' ),
               'add_or_remove_items'        => __( 'Ernährungsweisen hinzufügen oder entfernen' ),
               'choose_from_most_used'      => __( 'Aus den meist verwendeten Ernährungsweisen aussuchen' ),
               'not_found'                  => __( 'Keine Ernährungsweisen gefunden.' ),
               'menu_name'                  => __( 'Ernährungsweise' ),
        );

         $args = array(
               'hierarchical'          => false,
               'labels'                => $labels,
               'show_ui'               => true,
               'show_admin_column'     => true,
               'update_count_callback' => '_update_post_term_count',
               'query_var'             => true,
               'rewrite'               => array( 'slug' => 'ernaehrungsweise' ),
        );

        register_taxonomy( 'ernaehrungsweise', 'rezept', $args );
}

add_action( 'init', 'custom_taxonomies_rezept', 0 );

Im Backend könnt ihr jetzt Ernährungsweisen anlegen, bearbeiten und verwalten.

WordPress: nicht hierarchische Taxonomie kann verwendet werden

Die neue Taxonomie erscheint im Backend und kann verwendet werden

Legen wir jetzt ein neues Rezept an, können wir neben Kategorie und Schlagworten auch die Ernährungsweise angeben.

WordPress eigene Taxonomie verwenden

Die selbst erstellte Taxonomie für Ernährungsweisen kann benutzt werden

Hierarchische und nicht-hierarchische Custom Taxonomies

Neben den nicht-hierarchischen Taxonomien wie beispielsweise Schlagworten können auch Custom Taxonomies mit Hierarchie erstellt werden. Eine hierarchische Taxonomie sind zum Beispiel die Kategorien in WordPress.

Für unsere Rezepte erstellen wir zusätzlich eine Taxonomie, um diese in Rezeptarten unterteilen zu können. Beispielsweise wollen wir zwischen Kochen und Backen unterscheiden, und innerhalb dieser Arten zwischen süß und salzig. Dazu erweitert ihr die Funktion zum Beispiel so:

function custom_taxonomies_rezept() {

//Nicht-hierarchische Taxonomie für die Ernährungsweise

         $labels = array(
               'name'                       => __( 'Ernährungsweisen'),
               'singular_name'              => __( 'Ernährungsweise'),
               'search_items'               => __( 'Ernährungsweisen durchsuchen' ),
               'popular_items'              => __( 'Beliebte Ernährungsweisen' ),
               'all_items'                  => __( 'Alle Ernährungsweisen' ),
               'parent_item'                => null,
               'parent_item_colon'          => null,
               'edit_item'                  => __( 'Ernährungsweise bearbeiten' ),
               'update_item'                => __( 'Ernährungsweise aktualisieren' ),
               'add_new_item'               => __( 'Neue Ernährungsweise hinzufügen' ),
               'new_item_name'              => __( 'Neue Ernährungsweise' ),
               'separate_items_with_commas' => __( 'Ernährungsweisen mit Kommas trennen' ),
               'add_or_remove_items'        => __( 'Ernährungsweisen hinzufügen oder entfernen' ),
               'choose_from_most_used'      => __( 'Aus den meist verwendeten Ernährungsweisen aussuchen' ),
               'not_found'                  => __( 'Keine Ernährungsweisen gefunden.' ),
               'menu_name'                  => __( 'Ernährungsweise' ),
         );

         $args = array(
               'hierarchical'          => false,
               'labels'                => $labels,
               'show_ui'               => true,
               'show_admin_column'     => true,
               'update_count_callback' => '_update_post_term_count',
               'query_var'             => true,
               'rewrite'               => array( 'slug' => 'ernaehrungsweise' ),
         );

        register_taxonomy( 'ernaehrungsweise', 'rezept', $args );

//Hierarchische Taxonomie für die Rezeptart

         $labels = array(
               'name'              => __( 'Rezeptarten'),
               'singular_name'     => __( 'Rezeptart'),
               'search_items'      => __( 'Rezeptarten durchsuchen' ),
               'all_items'         => __( 'Alle Rezeptarten' ),
               'parent_item'       => __( 'Übergeordnete Rezeptart' ),
               'parent_item_colon' => __( 'Übergeordnete Rezeptart:' ),
               'edit_item'         => __( 'Rezeptart bearbeiten' ),
               'update_item'       => __( 'Rezeptart aktualisieren' ),
               'add_new_item'      => __( 'Neue Rezeptart erstellen' ),
               'new_item_name'     => __( 'Neue Rezeptart' ),
               'menu_name'         => __( 'Rezeptart' ),
         );

         $args = array(
               'hierarchical'      => true,
               'labels'            => $labels,
               'show_ui'           => true,
               'show_admin_column' => true,
               'query_var'         => true,
               'rewrite'           => array( 'slug' => 'rezeptart' ),
         );

         register_taxonomy( 'rezeptart', array( 'rezept' ), $args );
}

add_action( 'init', 'custom_taxonomies_rezept', 0 );

Mit diesem Code erstellt ihr die beiden Custom Taxonomies Ernährungsweise und Rezeptart.

Beim Anlegen von neuen Elementen einer hierarchischen Taxonomie könnt ihr ein Elternelement angeben. Die existierende Hierarchie wird euch beim Verwalten oder Verwenden der Custom Taxonomy auch angezeigt.

WordPress eigene hierarchische Taxonomie

Beim Erstellen einer neuen Rezeptart kann ein übergeordnetes Elternelement gewählt werden

Beide Custom Taxonomies wurden dem Custom Post Type Rezept zugeordnet und können jetzt beim Anlegen oder Bearbeiten von Rezepten benutzt werden.

WordPress eigene Taxonomien zuordnen

Beide Custom Taxonomies können beim Erstellen von Rezepten verwendet werden

Falls euch Details zu einzelnen Argumenten der Funktion register_taxonomy() interessieren, könnt ihr diese im WordPress Codex nachlesen.

Fazit

Custom Taxonomies bieten euch die Möglichkeit, Inhalte in WordPress nach euren eigenen Angaben zu kategorisieren. Ihr könnt entweder einfache nicht-hierarchische Taxonomien erstellen oder Taxonomien, zwischen deren Elementen ihr dann Eltern-Kind-Beziehungen angeben könnt.

Benutzt ihr Custom Taxonomies auf eurer WordPress Seite?

Share on Facebook0Tweet about this on Twitter0Share on Google+1Share on LinkedIn0Email this to someone
Katharina

Katharina

Beim Webseiten basteln vergesse ich schnell mal die Zeit. An WordPress gefällt mir besonders die vielfältige Welt der Plugins und Themes, die zum Ausprobieren einlädt.
Katharina

Du willst up-to-date bleiben?

Trage dich jetzt in unseren kostenlosen Newsletter ein, um stets die aktuellsten Neuigkeiten rund um Wordpress zu erhalten.

Wir geben deine Daten nicht weiter! Wir hassen Spam genauso wie du!

6 Kommentare

Reaktionen auf diesen Beitrag

  • Hallo Katharina nutzt du das immer noch? Sieht echt gut aus und lässt sich bestimmt einfach mit WordPress arbeiten oder? Wie sieht es mit Seo aus nimmt der das auch alles so?

    LG Mathias

    • Katharina

      Hallo Mathias,

      na klar, Custom Taxonomies sind nach wie vor ein nützliches Werkzeug. Aus SEO-Sicht sind CT genauso zu behandeln wie die vordefinierten Taxonomien, also Kategorien und Schlagworte.

      Viele Grüße,
      Katharina

  • Hallo Katharina,
    vielen Dank für Deine sehr guten Anleitungen,

    Meine Frage: ich habe unter den Beiträgen einen Glossar angelegt und lasse ihn über die function alphabetisch ordnen.
    Als zweites habe ich eben gerade die Custom Post Types wie beschrieben erstellt. Klappt. Doch es werden die Kategorien der Beitragsseiten angezeigt und im Frontend greift es das template zu (das kriege ich wohl noch raus, woran das liegt).
    Was ich möchte ist alles komplett zu trennen also eigenständige Kategorien und Custom-Beitragsseiten.
    Ist es möglich das zu trennen, vielleicht hast du es schon beschrieben und ich habe es nicht verstanden?
    Grüße Christiane

    • Katharina

      Hallo Christiane,

      beim Erstellen des Custom Post Types kannst du angeben, welche Taxonomien dieser verwendet. So wäre die Standardeinstellung für Beiträge: 'taxonomies' => array( 'post_tag', 'category' ). Anstatt der hier angegebenen Taxonomien (Schlagwörter & Kategorien) kannst du auch eine Custom Taxonomy verwenden.

      Wie du eigene Archive für deine CPT anlegst, habe ich in diesem Beitrag beschrieben.

      Viele Grüße,
      Katharina

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *