{"id":97,"date":"2018-02-11T00:56:00","date_gmt":"2018-02-10T23:56:00","guid":{"rendered":"https:\/\/schoppe.it\/wiki\/?p=97"},"modified":"2024-09-03T08:51:24","modified_gmt":"2024-09-03T06:51:24","slug":"wordpress-custom-taxonomy-erstellen","status":"publish","type":"post","link":"https:\/\/schoppe.it\/wiki\/wordpress-custom-taxonomy-erstellen\/","title":{"rendered":"WordPress Custom Taxonomy erstellen"},"content":{"rendered":"\n<p><strong>Beispiel:<\/strong> Ich m\u00f6chte zus\u00e4tzlich zum Autor des Beitrags die mitwirkenden Autoren nennen. Hierzu m\u00f6chte ich eine Schlagwortliste (tags) nutzen, damit ich sp\u00e4ter eine Liste alle genannten mitwirkenden Autoren erstellen kann.<\/p>\n\n\n\n<p>Zu jedem WordPress-Befehl habe ich den Link zum WordPress Kodex eingef\u00fcgt. Dort werden alle Parameter und deren Einstellungsm\u00f6glichkeiten vollst\u00e4ndig beschrieben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">functions.php<\/h2>\n\n\n\n<p>In die functions.php folgenden Code einf\u00fcgen.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\nadd_action( &#039;init&#039;, &#039;create_post_taxonomies&#039;, 0 );\n\nfunction create_post_taxonomies() {\n\n $labels = array(\n &#039;name&#039; =&gt; _x( &#039;Liste der mitwirkenden Autoren&#039;, &#039;taxonomy general name&#039;, &#039;textdomain&#039; ),\n &#039;singular_name&#039; =&gt; _x( &#039;Mitwirkender Autor&#039;, &#039;taxonomy singular name&#039;, &#039;textdomain&#039; ),\n &#039;search_items&#039; =&gt; __( &#039;Autor suchen&#039;, &#039;textdomain&#039; ),\n &#039;popular_items&#039; =&gt; __( &#039;Meistgenannte Autoren&#039;, &#039;textdomain&#039; ),\n &#039;all_items&#039; =&gt; __( &#039;Alle Autoren&#039;, &#039;textdomain&#039; ),\n &#039;parent_item&#039; =&gt; null,\n &#039;parent_item_colon&#039; =&gt; null,\n &#039;edit_item&#039; =&gt; __( &#039;Autor bearbeiten&#039;, &#039;textdomain&#039; ),\n &#039;update_item&#039; =&gt; __( &#039;Autor aktualisieren&#039;, &#039;textdomain&#039; ),\n &#039;add_new_item&#039; =&gt; __( &#039;Neuen Autor hinzuf\u00fcgen&#039;, &#039;textdomain&#039; ),\n &#039;new_item_name&#039; =&gt; __( &#039;Name des neuen Autors&#039;, &#039;textdomain&#039; ),\n &#039;separate_items_with_commas&#039; =&gt; __( &#039;Autoren mit Kommas trennen&#039;, &#039;textdomain&#039; ),\n &#039;add_or_remove_items&#039; =&gt; __( &#039;Hinzuf\u00fcgen oder Entfernen von Autoren&#039;, &#039;textdomain&#039; ),\n &#039;choose_from_most_used&#039; =&gt; __( &#039;W\u00e4hle aus den meistgenannten Autoren&#039;, &#039;textdomain&#039; ),\n &#039;not_found&#039; =&gt; __( &#039;Keinen Autor gefunden.&#039;, &#039;textdomain&#039; ),\n &#039;menu_name&#039; =&gt; __( &#039;Mitwirk. Autoren&#039;, &#039;textdomain&#039; ),\n );\n\n$args = array(\n &#039;hierarchical&#039; =&gt; false,\n &#039;public&#039; =&gt; true,\n &#039;labels&#039; =&gt; $labels,\n &#039;show_ui&#039; =&gt; true,\n &#039;show_admin_column&#039; =&gt; true,\n &#039;show_tagcloud&#039; =&gt; true,\n &#039;update_count_callback&#039; =&gt; &#039;_update_post_term_count&#039;,\n &#039;query_var&#039; =&gt; true,\n \/\/&#039;rewrite&#039; =&gt; array( &#039;slug&#039; =&gt; &#039;mitwirk-autor&#039; ),\n );\n\n&lt;strong&gt;register_taxonomy&lt;\/strong&gt;( &#039;mitwirk_autor&#039;, &#039;post&#039;, $args );\n}\n<\/pre><\/div>\n\n\n<p><strong>Erkl\u00e4rung:<\/strong><\/p>\n\n\n\n<p>Der erste Block (<em>$labels<\/em>) enth\u00e4lt die Beschriftungen f\u00fcr die GUI. Daher empfehle ich hier aussagekr\u00e4ftige und eindeutige Bezeichnungen zu w\u00e4hlen.<\/p>\n\n\n\n<p>Der zweite Block (<em>$args<\/em>) enth\u00e4lt die weiteren Parameter des Befehls <em>register_taxonomy<\/em>. Die Variable <em>$labels<\/em> wird hier \u00fcbrigens in den Parameter <em>labels<\/em> eingebunden.<\/p>\n\n\n\n<p>Wichtig ist der Parameter <em>hierachical<\/em>. Der Wert <em>false<\/em> erstellt eine Taxonomy analog einer Schlagwortliste. Der Wert <em>true<\/em> erstellt eine Taxonomy analog einer Kategorienliste, in der auch untergeordnete Kategorien erstellt werden k\u00f6nnen.<\/p>\n\n\n\n<p>Abschlie\u00dfend folgt der eigentlich Befehl <em>register_taxonomy<\/em>, der die neue Taxonomy erstellt<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;em&gt;register_taxonomy( &#039;mitwirk-autor&#039;, &#039;post&#039;, $args );&lt;\/em&gt;\n<\/pre><\/div>\n\n\n<p>Der erste Wert in den Klammern (hier: <em>&#8218;mitwirk-autor&#8216;<\/em>) enth\u00e4lt die technische Bezeichnung der Taxonomy. Dieser Wert muss eindeutig sein und wird sp\u00e4ter noch ben\u00f6tigt. Er sollte nur Kleinbuchstaben und den Unterstrich enth\u00e4lten und nicht l\u00e4nger als 32 Zeichen sein.<\/p>\n\n\n\n<p>Der zweite Wert (hier: <em>&#8218;post&#8216;<\/em>) legt fest, f\u00fcr welchen Objekttypen die neue Taxonomy genutzt werden kann. Dies kann jeder Standard-Post Type (bspw. <em>&#8218;post&#8216;<\/em> und <em>&#8218;page&#8216;<\/em>) und jeder registrierte Custom Post Type sein.<\/p>\n\n\n\n<p><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/register_taxonomy\">https:\/\/codex.wordpress.org\/Function_Reference\/register_taxonomy<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Permalinks aktualisieren<\/h2>\n\n\n\n<p>Nachdem die neue Taxonomy registriert wurde, am besten einmal die Permalinks aktualisieren. Hierzu im Dashboard unter <em>Einstellungen &gt; Permalinks<\/em> auf den Button &#8222;\u00c4nderungen \u00fcbernehmen&#8220; klicken. Es m\u00fcssen keine Einstellungen ge\u00e4ndert werden. Nur auf den Button klicken.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Darstellung der Taxonomy zu einem Beitrag<\/h2>\n\n\n\n<p>Der folgende Code k\u00f6nnte bspw. in der <strong>content.php<\/strong> und der <strong>content-single.php<\/strong> eingef\u00fcgt werden und erstellt eine Liste der zum jeweiligen Beitrag eingetragenen mitwirkenden Autoren.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php\necho &lt;strong&gt;get_the_term_list&lt;\/strong&gt;( $post-&gt;ID, &#039;mitwirk_autor&#039;, &#039;&lt;strong&gt;Mitwirkende Autoren: &lt;\/strong&gt;&#039;, &#039;, &#039;, &#039;&lt;\/p&gt;&#039;);\n?&gt;\n<\/pre><\/div>\n\n\n<p><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/get_the_term_list\">https:\/\/codex.wordpress.org\/Function_Reference\/get_the_term_list<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Darstellung einer \u00dcbersicht aller verwendeten Eintr\u00e4ge der Taxonomy<\/h2>\n\n\n\n<p>Zur Darstellung einer kompletten Liste aller Eintr\u00e4ge der erstellten Taxonomy kann der folgende Code bspw. in einer eigenen Template-PHP eingef\u00fcgt werden.<\/p>\n\n\n\n<p>In diesem Beispiel habe ich einen eigenen &lt;div&gt;-Block erstellt, damit ich die Liste mittels style.css separat gestalten kann.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;div id=&quot;liste_mitwirk_autoren&quot;&gt;\n\n\t&lt;h2&gt;Mitwirkende Autoren&lt;\/h2&gt;\n\n\t&lt;ul&gt;\n\t\t&lt;?php wp_list_categories( array(\n\t\t\t&#039;child_of&#039;            =&gt; 0,\n\t\t\t&#039;current_category&#039;    =&gt; 0,\n\t\t\t&#039;depth&#039;               =&gt; 0,\n\t\t\t&#039;echo&#039;                =&gt; 1,\n\t\t\t&#039;exclude&#039;             =&gt; &#039;&#039;,\n\t\t\t&#039;exclude_tree&#039;        =&gt; &#039;&#039;,\n\t\t\t&#039;feed&#039;                =&gt; &#039;&#039;,\n\t\t\t&#039;feed_image&#039;          =&gt; &#039;&#039;,\n\t\t\t&#039;feed_type&#039;           =&gt; &#039;&#039;,\n\t\t\t&#039;hide_empty&#039;          =&gt; 1,\n\t\t\t&#039;hide_title_if_empty&#039; =&gt; false,\n\t\t\t&#039;hierarchical&#039;        =&gt; false,\n\t\t\t&#039;order&#039;               =&gt; &#039;ASC&#039;,\n\t\t\t&#039;orderby&#039;             =&gt; &#039;name&#039;,\n\t\t\t&#039;separator&#039;           =&gt; &#039;&#039;,\n\t\t\t&#039;show_count&#039;          =&gt; 0,\n\t\t\t&#039;show_option_all&#039;     =&gt; &#039;&#039;,\n\t\t\t&#039;show_option_none&#039;    =&gt; __( &#039;No categories&#039; ),\n\t\t\t&#039;style&#039;               =&gt; &#039;list&#039;,\n\t\t\t&#039;taxonomy&#039;            =&gt; &#039;mitwirk-autor&#039;,\n\t\t\t&#039;title_li&#039;            =&gt; __( &#039;&#039; ),\n\t\t\t&#039;use_desc_for_title&#039;  =&gt; 1,\n\t\t) ); ?&gt;\n\t&lt;\/ul&gt;\n&lt;\/div&gt;&lt;!-- Ende liste_mitwirk_autoren --&gt;\n<\/pre><\/div>\n\n\n<p>Der Parameter <em>&#8218;format&#8216;<\/em> mit dem Wert <em>&#8218;list&#8216;<\/em> erstellt eine Liste mit der entsprechenden HTML-Formatierung (&lt;ul&gt;&lt;li&gt;&lt;\/li&gt;&lt;\/ul&gt;).<\/p>\n\n\n\n<p><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_tag_cloud\">https:\/\/codex.wordpress.org\/Function_Reference\/wp_tag_cloud<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Beispiel: Ich m\u00f6chte zus\u00e4tzlich zum Autor des Beitrags die mitwirkenden Autoren nennen. Hierzu m\u00f6chte ich eine Schlagwortliste (tags) nutzen, damit ich sp\u00e4ter eine Liste alle genannten mitwirkenden Autoren erstellen kann. Zu jedem WordPress-Befehl habe ich den Link zum WordPress Kodex eingef\u00fcgt. Dort werden alle Parameter und deren Einstellungsm\u00f6glichkeiten vollst\u00e4ndig beschrieben. functions.php In die functions.php folgenden&hellip; <a class=\"more-link\" href=\"https:\/\/schoppe.it\/wiki\/wordpress-custom-taxonomy-erstellen\/\"><span class=\"screen-reader-text\">WordPress Custom Taxonomy erstellen<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"powershell":[],"wordpress":[42,43,44],"exchange":[],"linux":[],"class_list":["post-97","post","type-post","status-publish","format-standard","hentry","category-wordpress","wordpress-get_the_term_list","wordpress-register_taxonomy","wordpress-wp_tag_cloud","entry"],"_links":{"self":[{"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/posts\/97","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/comments?post=97"}],"version-history":[{"count":3,"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/posts\/97\/revisions"}],"predecessor-version":[{"id":103,"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/posts\/97\/revisions\/103"}],"wp:attachment":[{"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/media?parent=97"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/categories?post=97"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/tags?post=97"},{"taxonomy":"powershell","embeddable":true,"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/powershell?post=97"},{"taxonomy":"wordpress","embeddable":true,"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/wordpress?post=97"},{"taxonomy":"exchange","embeddable":true,"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/exchange?post=97"},{"taxonomy":"linux","embeddable":true,"href":"https:\/\/schoppe.it\/wiki\/wp-json\/wp\/v2\/linux?post=97"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}