Kleine CodeCrowd von programmieren lernen
Leon Hoffmann von codeCrowd Leon, 13 Jan 2020

Notiz: Wie man eine Custom Taxonomy in WordPress erstellt

Programmieren Lernen Blog Featured-Thumbnail Wie man eine Custom Taxonomy in WordPress erstellt

In der Kategorie NOTIZveröffentliche ich meine persönlichen Notizen, die ich mache, während ich selbst neue Themenbereiche erlerne. Vielleicht helfen diese Notizen ja auch dir.🤓

Custom Taxonomies erstellen

Mit Taxonomien (wie Tags und Kategorien) gruppierst du deine Inhalte. In WordPress kannst du, neben Tags und Kategorien, auch eigene Taxonomien erstellen und deine Inhalte so weiter und sinnvoller gruppieren und im Loop ausspielen.

Auch wenn es empfohlen wäre, erstelle ich die Custom WordPress Taxonomy in diesem Tutorial nicht als Site-Specific Plugin, sondern füge den entsprechenden Code einfach in die functions.php Datei ein.

🤓 Anmerkung

Es gibt hierarchische und nicht-hierarchische Taxonomien – also solche mit und ohne Unter-Taxonomien. Kategorien können Unterkategorien haben und sind somit hierarchische Taxonomien. Tags wiederum können keine Unter-Tags haben und sind daher nicht-hierarchische Taxonomien.

<?php

// Sprich den 'init' Hook an und füge deine Funktion, welche die Taxonomie definiert, als zweiten Parameter hinzu
add_action( 'init', 'prefix_create_custom_non_hierarchical_taxonomy');
 
// Wir erstellen die Funktion, die die Custom Taxonomy beschreibt
function prefix_create_custom_non_hierarchical_taxonomy() {
 
// Wir fügen eine nicht-hierarchische Taxonomien hinzu und kommentieren die Stellen, die geändert werden müssen, sollte es sich um eine hierarchische Taxonomien handeln
  $labels = array(
    'name' => _x( 'Dein Taxonomie-Name', 'taxonomy general name' ),
    'singular_name' => _x( 'Taxonomie-Name', 'taxonomy singular name' ),
    'search_items' =>  __( 'Durchsuche Taxonomie-Name' ),
    'all_items' => __( 'Alle Dein Taxonomie-Name' ),
// Anstatt null müsste bei einer hierarchische Taxonomie IN DEN FOLGENDEN BEIDEN WERTEN der Eltern-Taxonomie-Name hinein
    'parent_item' => null,
    'parent_item_colon' => null ,
    'edit_item' => __( 'Taxonomie-Name Bearbeiten' ), 
    'update_item' => __( 'Taxonomie-Name speichern' ),
    'add_new_item' => __( 'Neuer Taxonomie-Name' ),
    'new_item_name' => __( 'Neuer Taxonomie-Name Titel' ),
    'menu_name' => __( 'Taxonomie-Name' ),
  );    

$args = [
'hierarchical'      => false, // oder true wenn es eine hierarchische Taxonomie sein soll
'labels'            => $labels,
'show_ui'           => true,
'show_admin_column' => true,
'query_var'         => true,
'rewrite'           => ['slug' => 'custom-taxonomy'],
];

// Jetzt registrieren wir die Custom Taxonomy 
register_taxonomy('custom-taxonomy', ['post'], $args); // in dem Array definierst du, für welche Post Types die Taxonomie registriert werden soll
 
}

?>

Hier einmal der Code für hierarchische Taxonomien

 <?php 
add_action('init', 'bwrsld01_create_regionen_non_hierarchical_taxonomy');

function bwrsld01_create_regionen_non_hierarchical_taxonomy()
{

 $labels = array(
  'name'              => _x('Region', 'taxonomy general name'),
  'singular_name'     => _x('Region', 'taxonomy singular name'),
  'search_items'      => __('Durchsuche Regionen'),
  'all_items'         => __('Alle Dein Regionen'),
  'parent_item'       => __( 'Eltern Region' ),
  'parent_item_colon' => __( 'Eltern Region:' ),
  'edit_item'         => __('Region Bearbeiten'),
  'update_item'       => __('Region speichern'),
  'add_new_item'      => __('Neue Region'),
  'new_item_name'     => __('Neue Regions-Titel'),
  'menu_name'         => __('Regionen'),
 );

 $args = [
  'hierarchical'      => true,
  'labels'            => $labels,
  'show_ui'           => true,
  'show_admin_column' => true,
  'query_var'         => true,
  'rewrite'           => ['slug' => 'region'],
 ];

 register_taxonomy('region', ['klster'], $args);

}

?>

Du kannst die Custom Taxonomie folgendermaßen ausgeben:

 <?php 

the_terms( $post->ID, 'custom-taxonomy', 'Custom Taxonomy: ', ', ', ' ' ); 

?>

Um ein eigenes Template für die Custom Taxonomy zu erstellen, nenne die PHP-Datei taxonomy-{taxonomy-slug}.php.

P.S. Wenn dir der Artikel gefallen hat, abonniere doch die wöchentlichen Tutorials auf YouTube, den E-Mail-Newsletter oder Beteilige dich an der Diskussion auf Facebook.

Kommentare