Benutzerdefinierte WordPress-Taxonomien sind eine großartige Möglichkeit, den Inhalt Ihrer Website zu organisieren, aber was genau ist das? Wie können sie effektiv umgesetzt werden? Wichtiger jedoch, wie können sie Ihrer Website zugute kommen? Fürchten Sie sich nicht, was Sie im Folgenden lesen werden, ist der umfassendste Leitfaden zu benutzerdefinierten WordPress-Taxonomien, den Sie heute im Internet finden.
Im Grunde ist eine Taxonomie einfach eine Methode, um Dinge zusammenzufassen. Wenn Sie bereits einen Beitrag in WordPress veröffentlicht haben, besteht die Möglichkeit, dass Sie bereits Taxonomien verwendet haben. Die Standard-Tags und -Kategorien in WordPress gelten als Taxonomien! Lassen Sie uns nun mehr über benutzerdefinierte Taxonomien sprechen. WordPress hat es Ihnen erlaubt, seit Version 2.3 eigene Taxonomien zu erstellen. Diese wurden jedoch erst seit Version 2.9 populär.
Ein beliebter Weg, um benutzerdefinierte Taxonomien zu erklären, ist das Beispiel von Filmen. Nehmen wir an, wir schreiben einen Artikel über den Film "Terminator 2". Was wir normalerweise mit den standardmäßig integrierten Taxonomien machen würden, ist die Klassifizierung des Artikels anhand von Tags und Kategorien. Das Problem bei den eingebauten Taxonomien ist, dass sie extrem generisch sind.
Wir werden mit diesem Beispiel fortfahren und so tun, als hätten wir "Arnold Schwarzenegger" als einen unserer Tags eingegeben. Für diejenigen, die nicht mit dem österreichischen Schauspieler vertraut sind, könnte dies ziemlich verwirrend sein. Es ist offensichtlich der Name einer Person, aber ist diese Person ein Schauspieler? Ein Direktor? Ein Produzent? Ein viel besserer Ansatz wäre die Erstellung einer benutzerdefinierten Taxonomie mit dem Namen "Actors" und die Hinzufügung von Arnold's Namen zu dieser bestimmten Taxonomie. Wir könnten noch weiter gehen und zusätzliche benutzerdefinierte Taxonomien für andere typische Filmgruppen wie Genres, Regisseure, Produzenten und andere hinzufügen.
Ein Wort, mit dem Sie sich auch gut vertraut machen möchten, ist "Begriff". In WordPress ist ein Begriff eine einzige Klassifizierung, die innerhalb der Taxonomie lebt und von ihr bestimmt wird. In unserem vorherigen Beispiel hatten wir eine Taxonomie mit der Bezeichnung "Actors". Daher würden wir folgende Ausdrücke verwenden: Arnold Schwarzenegger, Linda Hamilton, Edward Furlong usw.
Benutzerdefinierte Taxonomien können die Organisation und Benutzerfreundlichkeit Ihrer Website erheblich verbessern. Aufgrund der Flexibilität, die mit benutzerdefinierten Taxonomien einhergeht, sind sie im Vergleich zu Tags und Kategorien immer spezifischer für Ihr Thema. Ein naheliegendes Beispiel ist die Aufnahme Ihrer Taxonomien am unteren oder oberen Rand Ihres Artikels. Im folgenden Beispiel wurden drei benutzerdefinierte Taxonomien erstellt und die zugehörigen Begriffe unter dem Hauptinhaltsbereich des Artikels angezeigt.
Cool, richtig? Das ist jedoch nicht die einzige Verwendung. Im obigen Beispiel werden Sie feststellen, dass der Text als Hyperlink erscheint, weil er so ist. Benutzerdefinierte Taxonomien ermöglichen es Ihnen, Archive für bestimmte Begriffe zu haben. Dies ermöglicht nicht nur eine bessere Inhaltsorganisation, sondern ermöglicht auch das Abonnieren bestimmter Begriffe über RSS. Eine andere, weniger implementierte Verwendung für benutzerdefinierte Taxonomien besteht darin, sie einfach als Ersatz für Tags zu verwenden. Ich entschied mich für genau diesen Ansatz für einen Spielblog, den ich kürzlich gestartet habe. Sie müssen nicht immer die Tatsache hervorheben, dass Sie benutzerdefinierte Taxonomien verwenden. Denken Sie daran, ihre wahre Macht liegt im Potenzial für überlegenes Archivieren, Suchen, Abfragen und URL-Struktur.
Die Verwendung von benutzerdefinierten Taxonomien bietet verschiedene andere Vorteile. Statt theoretische Anwendungsfälle zu diskutieren, betrachten wir stattdessen einige praktische Beispiele mit Code, um sie zu sichern.
Nachdem wir nun verstanden haben, was Taxonomien sind und wie man sie verwendet, können wir damit beginnen, sie in unsere Themen zu implementieren. Zu Beginn registrieren wir zunächst unsere benutzerdefinierte Taxonomie. In diesem Beispiel erstelle ich eine Taxonomie mit dem Namen "Actors". Wenn Sie diesem Tutorial folgen, sollten Sie das Thema öffnen Functions.php Datei und fügen Sie den folgenden Code ein.
$ labels = array ('name' => __ ('Actors', 'your-themes-text-domain'), 'singular_name' => __ ('Actor', 'your-themes-text-domain'), ' search_items '=> __ (' Schauspieler suchen ',' your-themes-text-domain '),' popular_items '=> __ (' Beliebte Schauspieler ',' your-themes-text-domain '),' all_items '=> __ ('Alle Darsteller', 'Ihre-Themes-Text-Domain'), 'Parent_item' => __ ('Übergeordneter Darsteller', 'Ihre-Themes-Text-Domain'), 'Edit_item' => __ ('Bearbeiten Darsteller ',' Ihre-Themes-Text-Domäne '),' Aktualisierungselement '=> __ (' Aktualisierungsdarsteller ',' Ihre-Themes-Text-Domäne '),' Add_New_Item '=> __ (' Neuen Darsteller hinzufügen ', 'your-themes-text-domain'), 'new_item_name' => __ ('Neuer Darsteller', 'your-themes-text-domain'), 'separate_items_with_commas' => __ ('Separate Actors with commas', 'your -themes-text-domain '),' add_or_remove_items '=> __ (' Actors hinzufügen oder entfernen ',' your-themes-text-domain '),' select_from_most_used '=> __ (' Wählen Sie die am häufigsten verwendeten Actors ',' Ihre-Themes-Text-Domain ')); $ args = array ('labels' => $ labels, 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_nav_menus' => true, 'query_var' => true); register_taxonomy ('akteure', 'post', $ args);
Seien Sie nicht beunruhigt über die Menge an Code hier, es ist alles ziemlich einfach, wenn Sie es abbauen. Der Großteil des Codes befindet sich im $ Labels
Array. Dieses Array definiert den Inhalt bestimmter Beschriftungen im WordPress-Dashboard. Das $ args
Array ist, wo die wahre Magie geschieht; Dies definiert die Einstellungen für die Taxonomie.
Sie werden feststellen, dass wir für das Argument "labels" das Label-Array übergeben, das wir zuvor erstellt haben. Ein weiteres erwähnenswertes Argument ist das "hierarchische" Argument. Dies definiert, ob unsere Taxonomien die Fähigkeit verschachtelter Taxonomien oder "Kind" -Taxonomien besitzen. In unserem Beispiel benötigen wir diese Funktionalität nicht, sondern nehmen deren Kenntnis zur Kenntnis, da Sie in zukünftigen Projekten möglicherweise ein granulares Taxonomie-System benötigen.
Die Erklärung jedes einzelnen Arguments liegt außerhalb des Rahmens dieses bestimmten Tutorials. Wenn Sie jedoch mehr darüber erfahren möchten, können Sie diese Argumente immer detailliert mit dem offiziellen WordPress-Codex untersuchen register_taxonomy
Seite.
Das letzte, was hier zur Kenntnis genommen wird, ist der Anruf an die register_taxonomy
Funktion. Das erste Argument definiert den Namen der Taxonomie (diese wird intern in WordPress verwendet). Das zweite Argument definiert, an welchen Post-Typ die Taxonomie angehängt wird. In unserem Szenario hängen wir es an Standard-WordPress-Posts an. Alternativ können Sie es an einen benutzerdefinierten Post-Typ oder sogar an mehrere verschiedene Post-Typen anhängen, indem Sie ein Array von Post-Typen übergeben.
Nachdem wir unsere benutzerdefinierte Taxonomie erfolgreich registriert haben, werden Sie feststellen, dass wir jetzt eine Meta-Box "Actors" in der rechten Spalte der WordPress-Nachbearbeitungsseite haben. Wenn Sie in dieser Meta-Box Begriffe hinzufügen, werden sie in der Datenbank gespeichert, jedoch nicht am vorderen Ende Ihres Designs angezeigt. Lassen Sie uns das zuvor dargestellte Beispiel mit den drei Taxonomielisten implementieren, die sich am Ende des Beitrags befinden.
Für dieses Beispiel müssen Sie den Code, der für die Registrierung der Akteurs-Taxonomie verwendet wurde, zweimal kopieren und die Bezeichnungen umbenennen, um unsere zusätzlichen Taxonomien, Genres und Autoren wiederzugeben. Hier ist was mein Functions.php Datei sieht so aus wie bisher.
$ labels = array ('name' => __ ('Actors', 'your-themes-text-domain'), 'singular_name' => __ ('Actor', 'your-themes-text-domain'), ' search_items '=> __ (' Schauspieler suchen ',' your-themes-text-domain '),' popular_items '=> __ (' Beliebte Schauspieler ',' your-themes-text-domain '),' all_items '=> __ ('Alle Darsteller', 'Ihre-Themes-Text-Domain'), 'Parent_item' => __ ('Übergeordneter Darsteller', 'Ihre-Themes-Text-Domain'), 'Edit_item' => __ ('Bearbeiten Darsteller ',' Ihre-Themes-Text-Domäne '),' Aktualisierungselement '=> __ (' Aktualisierungsdarsteller ',' Ihre-Themes-Text-Domäne '),' Add_New_Item '=> __ (' Neuen Darsteller hinzufügen ', 'your-themes-text-domain'), 'new_item_name' => __ ('Neuer Darsteller', 'your-themes-text-domain'), 'separate_items_with_commas' => __ ('Separate Actors with commas', 'your -themes-text-domain '),' add_or_remove_items '=> __ (' Actors hinzufügen oder entfernen ',' your-themes-text-domain '),' select_from_most_used '=> __ (' Wählen Sie die am häufigsten verwendeten Actors ',' Ihre-Themes-Text-Domain ')); $ args = array ('labels' => $ labels, 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_nav_menus' => true, 'query_var' => true); register_taxonomy ('akteure', 'post', $ args); $ labels = array ('name' => __ ('Genres', 'your-themes-text-domain'), 'singular_name' => __ ('Genre', 'your-themes-text-domain'), ' search_items '=> __ (' Genres suchen ',' your-themes-text-domain '),' popular_items '=> __ (' Beliebte Genres ',' your-themes-text-domain '),' all_items '=> __ ('Alle Genres', 'Ihre-Themes-Text-Domain'), 'parent_item' => __ ('Eltern-Genre', 'Ihre-Themes-Text-Domain'), 'Edit_item' => __ ('Bearbeiten Genre ',' Ihre-Themes-Text-Domain '),' Update_item '=> __ (' Update Genre ',' Ihre-Themes-Text-Domain '),' Add_new_item '=> __ (' Neuen Genre hinzufügen ', 'your-themes-text-domain'), 'new_item_name' => __ ('New Genre', 'your-themes-text-domain'), 'separate_items_with_commas' => __ ('Separate Genres mit Kommas', 'your -themes-text-domain '),' add_or_remove_items '=> __ (' Genres hinzufügen oder entfernen ',' your-themes-text-domain '),' select_from_most_used '=> __ (' Wähle die am häufigsten verwendeten Genres ',' Ihre-Themes-Text-Domain ')); $ args = array ('labels' => $ labels, 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_nav_menus' => true, 'query_var' => true); register_taxonomy ('genres', 'post', $ args); $ labels = array ('name' => __ ('Writers', 'your-themes-text-domain'), 'singular_name' => __ ('Writer', 'your-themes-text-domain'), ' search_items '=> __ (' Autoren suchen ',' Ihre-Themes-Text-Domäne '),' popular_items '=> __ (' Beliebte Schriftsteller ',' Ihre-Themes-Text-Domäne '),' Alle_ Elemente '=> __ ('Alle Schreiber', 'Ihre-Themes-Text-Domain'), 'parent_item' => __ ('Übergeordneter Autor', 'Ihre-Themes-Text-Domain'), 'Edit_item' => __ ('Bearbeiten Writer ',' your-themes-text-domain '),' update_item '=> __ (' Update Writer ',' your-themes-text-domain '),' add_new_item '=> __ (' Neuen Writer hinzufügen ', 'your-themes-text-domain'), 'new_item_name' => __ ('New Writer', 'your-themes-text-domain'), 'separate_items_with_commas' => __ ('Separate Writers mit Kommas', 'your -themes-text-domain '),' add_or_remove_items '=> __ (' Autoren hinzufügen oder entfernen ',' Ihre-Themes-Text-Domäne '),' select_from_most_used '=> __ (' Wählen Sie die meistbenutzten Autoren aus ',' Ihre-Themes-Text-Domain ')); $ args = array ('labels' => $ labels, 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_nav_menus' => true, 'query_var' => true); register_taxonomy ('writers', 'post', $ args);
Nachdem wir nun unsere drei Taxonomien registriert haben, können wir unsere neu erstellten Taxonomien und Begriffe in unserem Thema anzeigen. Stellen Sie sicher, dass Sie einen vorhandenen Beitrag bearbeiten, um einige Dummy-Begriffe in die neuen Taxonomie-Meta-Boxen einzufügen.
Fügen Sie den folgenden Code am unteren Rand Ihres ein Functions.php Datei.
Funktion display_post_taxonomies ($ content) if (is_single ()) $ args = array ('public' => true, '_builtin' => false); $ output = 'Objekte'; $ operator = 'und'; $ taxonomies = get_taxonomies ($ args, $ output, $ operator); if ($ taxonomies) $ content. = ''; foreach ($ taxonomies als $ taxonomy) $ args = array ('orderby' => 'name', 'echo' => false, 'taxonomy' => $ taxonomy-> name, 'title_li' => ''. __ ($ taxonomy-> labels-> name, 'your-themes-text-domain'). '',' show_option_none '=> __ (' Nein '. $ taxonomy-> labels-> name,' your-themes-text-domain ')); $ content. = ''; return $ content; add_filter ('the_content', 'display_post_taxonomies');'. wp_list_categories ($ args). '
'; $ content. = '
Kurz gesagt, wir filtern den Inhalt des Beitrags, um unseren benutzerdefinierten Taxonomieabschnitt am Ende des Beitrags hinzuzufügen. Wenn Sie anstelle eines Vorlagen-Tags einen Filter verwenden, müssen Sie keine speziellen Vorlagendateien bearbeiten. Dies ist nicht nur einfacher, sondern ermöglicht auch die flexiblere Verwendung dieses Codes in mehreren Designs.
Sie werden auch feststellen, dass diese Funktion extrem generisch ist. Wir beziehen uns überhaupt nicht auf die Taxonomien, die wir zuvor geschaffen haben. Der obige Code erfasst nur benutzerdefinierte Taxonomien und ruft die get_taxonomies
Funktion mit dem args-Array-Index "built_in
Wenn Sie auf false setzen, wird sichergestellt, dass keine gebündelten WordPress-Taxonomien enthalten sind.
Wir durchlaufen dann unsere Taxonomien und fügen zusätzliche HTML-Elemente für Formatierungszwecke hinzu. In unserer Schleife nutzen wir auch die wp_list_categories
Funktion. Diese Funktion erstellt eine ungeordnete Liste von Begriffen für eine bestimmte Taxonomie. Es übernimmt nicht nur die Vorbereitung der HTML-Struktur, sondern verknüpft auch automatisch jeden einzelnen Begriff mit seiner jeweiligen Archivseite.
Wenn Sie jetzt Ihren Beitrag laden, werden Sie feststellen, dass Sie über drei ungeordnete Listen verfügen, in denen jeweils eine Taxonomie-Überschrift mit den zugehörigen Begriffen angezeigt wird. Das Problem ist, es gibt noch kein Styling. Fügen Sie den Designs den folgenden Code hinzu style.css Datei, um es ein wenig zu fichten.
.taxonomy_container overflow: versteckt; Bildschirmsperre; Lösche beide; Rand unten: 20px; .taxonomy_container ul margin: 0px; Polsterung: 0px; Typ des Listentyps: keine; .taxonomy_container> ul width: 31%; Schwimmer: links; rechte Marge: 3,5%; .taxonomy_container> ul: last-child margin-right: 0%; .taxonomy_title padding-left: 2px; Polsterung unten: 2px; Rand unten: 2px fest # 333; Bildschirmsperre; Rand unten: 2px; Schriftdicke: fett; .taxonomy_container> ul li ul li padding-left: 2px; Polsterung unten: 3px; Rahmen unten: 1px gepunktet #ccc; Rand unten: 3px; .taxonomy_container> ul li ul li: letztes Kind border-bottom: 0px;
Da habt ihr es Leute! Teil 1 unseres Leitfadens, um benutzerdefinierte WordPress-Taxonomien auf die nächste Ebene zu bringen. Heute haben wir uns angesehen, was benutzerdefinierte Taxonomien sind, was sie gut können und wie sie effektiv in Ihrem Thema implementiert werden können. Im nächsten Artikel werden wir uns mit der Anpassung Ihrer Taxonomie- und Termarchivvorlagen befassen.