So implementieren Sie benutzerdefinierte Beitragstypen und benutzerdefinierte Felder in WordPress

Veröffentlicht: 2014-06-10

WordPress ist nicht mehr nur auf das Bloggen beschränkt – es ist ein voll ausgestattetes Content-Management-System, das in der Lage ist, jede Art von Inhalt anzuzeigen und zu formatieren, den Sie ihm geben. Lassen Sie uns also über zwei großartige Möglichkeiten zur Erweiterung von WordPress sprechen: benutzerdefinierte Beitragstypen und benutzerdefinierte Felder.

Benutzerdefinierte Beitragstypen

Es sieht so aus, als hätte unsere Testseite Monday Morning Mug (die wir in unserem Blogbeitrag zur E-Mail-Integration verwendet haben) ein neues Problem zu lösen. Unser Blog ist so groß geworden, dass wir eine Vollzeitstelle für die Überprüfung von Kaffee eingestellt haben. Sie waren damit beschäftigt, Kaffee zu kochen und Rezensionen zu schreiben. Sie haben diese Rezensionen im Blog gepostet, aber unsere Leser sagten uns, dass all diese Rezensionen unseren „echten“ Blog-Inhalten im Wege stehen. Wir müssen einen separaten Ort für unsere Kaffeebewertungen einrichten, aber normale WordPress-Seiten reichen einfach nicht aus. Die Rezensenten haben auch vorgeschlagen, dass sie gerne einen Ort haben würden, an dem sie auf der Website einfach Informationen wie das Land, aus dem der Kaffee stammt, und Verkostungsnotizen speichern können. Das klingt nach einer perfekten Verwendung für einen benutzerdefinierten Beitragstyp, eine WordPress-Funktion, mit der wir neue Inhaltsabschnitte auf unserer Website erstellen können.

Benutzerdefinierte Beitragstypen sind unglaublich flexibel und können für jede Art von Inhalt implementiert werden: Zitate, Videos und verschiedene Farbtöne sind Beispiele dafür, was ein benutzerdefinierter Beitragstyp sein könnte.

Wir werden einen neuen Abschnitt unserer Website im Unterverzeichnis /coffees/ hinzufügen wollen, der voller Kaffeebewertungen ist. Dies wird ein wenig Code-Wrangling erfordern, aber es sollte ein relativ einfacher Prozess sein.

Hinweis: Dazu müssen Sie in der Lage sein, die .php-Dateien in Ihrem WordPress-Installationsverzeichnis zu bearbeiten, was normalerweise einen FTP-/SFTP-/SSH-Zugriff erfordert. Stellen Sie sicher, dass Sie dies haben, bevor Sie fortfahren.

Jedes WordPress-Theme kann eine functions.php-Datei verwenden, die sich unter:
/wp-content/themes/your_current_theme/functions.php
Diese Datei wird im Allgemeinen für themenspezifische Site-Änderungen sowie kleinere benutzerdefinierte Site-Modifikationen verwendet, wie die, die wir gleich vornehmen werden.

Hinweis: Wir werden der Datei functions.php Code hinzufügen, was bedeutet, dass sie themenspezifisch ist. Wenn Sie dies zu Ihrer Datei functions.php hinzufügen und dann das Design in Ihrer WordPress-Installation ändern, entfernen Sie den benutzerdefinierten Beitragstyp von Ihrer Website. Sie können benutzerdefinierte Inhaltstypen verwalten, indem Sie ein Plugin verwenden, z. B. Custom Post Type UI.

1. Öffnen Sie Ihre Datei functions.php und fügen Sie den folgenden Code am Ende der Datei hinzu:

function create_new_post_type() {
$labels = array(
'name' 			 => __('Coffee Reviews'),
'singular_name'  => __('Coffee Review'),
);
$args = array(
'labels'      	 => $labels,
'public' 	  	 => true,
'has_archive' 	 => true,
'menu_position'  => 5,
'description'    => 'Reviews And Types of Coffee',
'rewrite'     	 =>
array('slug' => 'reviews'),
'supports'    	 =>
array( 'title',
'comments', 'editor',
'thumbnail', 'custom-fields', 'revisions'),
);

register_post_type('Reviews', $args);
}
add_action('init', 'create_new_post_type');

Da wir nicht besonders gerne Code verwenden, ohne eine Vorstellung davon zu haben, was er tut, lassen Sie uns durchgehen, was dieser Code tut.

Hinweis: Sie haben vielleicht bemerkt, dass $labels und $args außerhalb der Funktion register_post_type() definiert sind, obwohl sie später nur als Argumente an diese Funktion übergeben werden. Diese Methode hilft bei der Organisation und Lesbarkeit, aber Sie können beide Arrays zu einem einzigen Argument zusammenfassen. Es wäre nur schwieriger zu verstehen.

Das $args Array enthält alle Einzelheiten, die wir zum Definieren unseres neuen Inhaltstyps benötigen. Hier ist, was diese tun:

  • 'labels' – Ein Array, das definiert, was wir unseren Inhaltstyp nennen werden. Es stehen viele weitere Bezeichnungen zur Verfügung, die Sie verwenden können, und eine vollständige Liste finden Sie in der Dokumentation hier.
  • 'public' – Ein boolescher Wert, der definiert, ob der Beitrag außerhalb des Admin-Panels sichtbar ist oder nicht.
  • 'has_archive' – Wenn wahr, erstellt dieser boolesche Wert ein Archiv dieser Art von benutzerdefinierten Posts, genau wie Standard-WordPress-Posts.
  • 'menu_position' – Diese Ganzzahl ändert, wohin Ihre benutzerdefinierte Post-Navigationsschaltfläche geht. Die Zahl 5 zeigt an, dass sie direkt unter der Registerkarte „Beiträge“ angezeigt wird. Eine vollständige Liste der numerischen Codes finden Sie in derselben Dokumentation.
  • 'description' – Beschreibt den Beitragstyp.
  • 'rewrite' – Dies ändert den Slug in „Reviews“, was dabei hilft, eine verwendbare Permalink-Struktur zu erstellen. (Kann auch ein boolescher Wert sein; weitere Informationen finden Sie in der Dokumentation.)
  • 'supports' – Ein Array, das definiert, welche nativen WordPress-Bearbeitungs-/Beitragsfunktionen aktiviert sind. Dieser ist ziemlich flexibel und es gibt viel mehr Optionen, aber für diesen Beitrag benötigen wir mindestens custom-fields und einen editor .

Als nächstes wird die Funktion register_post_type() aufgerufen, die einen neuen Beitragstyp namens Reviews erstellt, indem sie das Array von Argumenten verwendet, das wir gerade definiert haben.

Schließlich müssen wir noch eine letzte Funktion aufrufen, um den Vorgang abzuschließen. register_post_type() sollte immer durch die Aktion 'init' initialisiert werden. Wir können unsere neue Funktion durch einen Aufruf mit init verknüpfen

add_action(‘init’, ‘create_new_post_type’);

Genial! Wenn wir uns jetzt in unser WordPress-Admin-Panel einloggen, sollten wir auf der linken Seite eine neue Registerkarte mit dem Namen „Bewertungen“ sehen.

kaffee_bewertungen

2. Nachdem wir Bewertungen als benutzerdefinierten Beitragstyp eingerichtet haben, müssen wir die Permalink-Struktur aktualisieren, damit unsere Leser unsere Beiträge leicht finden können. Außerdem macht es unsere URLs viel einfacher zu lesen und SEO-freundlich.

3. Unter der Menüleiste Einstellungen -> Permalinks finden Sie eine Reihe gängiger Optionen für Permalink-Strukturen. Wir werden die benutzerdefinierte Einstellung ändern, damit sie mit dem Feld /%category%/%postname%/

Das bedeutet, dass WordPress URLs generiert, die der Kategorie und dem Titel unserer Beiträge entsprechen.

Hinweis: Dies ist eine seitenweite Änderung und wirkt sich auf Ihre Beiträge in anderen Kategorien aus.

custom_permalink

Werfen wir nun einen Blick auf die URL eines Beitrags, den unsere Rezensenten für den Kaffee Sumatra Ketiara geschrieben haben:

sumatra_permalink

Fantastisch! Sehen Sie sich diese URL an. Wir haben Bewertungen in einem eigenen Verzeichnis getrennt und die URL ist in einfachem Englisch geschrieben. Jetzt wissen unsere Leser genau, was sie bekommen, wenn sie auf einen Link klicken.

Benutzerdefinierte Felder

Obwohl unsere Rezensenten den neuen Bewertungsbereich lieben, haben sie uns gebeten, etwas im Backend zu integrieren, das es ihnen ermöglicht, allgemeine Informationen einzugeben, die sie zu jedem Kaffee schreiben, wie z. B. Herkunftsland und Verkostungsnotizen. Das klingt nach der perfekten Verwendung von benutzerdefinierten Feldern, die glücklicherweise sehr einfach zu implementieren sind.

1. In einem einzelnen Bewertungseditor sehen Sie die Schaltfläche für die Bildschirmoptionen in der oberen rechten Ecke des Editors:

Bildschirmoptionen

die sich beim Anklicken zu diesem erweitert:

screen_options_dropdown

2. Aktivieren Sie das Kontrollkästchen Benutzerdefinierte Felder.

Unterhalb des Editors sehen Sie das Feld Benutzerdefinierte Felder, das wir gerade aktiviert haben.

custom_fields_blank

3. Sie können in beide Felder alles eingeben; Alles, was Sie in das Feld Name eingeben und hinzufügen, wird für die spätere Verwendung gespeichert. Hier listen wir die Gegend und das Land auf, aus denen unser Kaffee stammt.

custom_fields_region

Benutzerdefinierte Felder machen es unglaublich einfach, Daten, die für eine Kategorie wichtig sind, für jeden Beitrag an einem separaten Ort zu standardisieren. Jetzt müssen wir diese Informationen nur noch in unserer Bewertung anzeigen.

4. Wir werden dieses Code-Tag zu einem unserer Themendokumente hinzufügen:

<br /><?php the_meta(); ?><br />

Hinweis: In diesem Beispiel fügen wir dieses Tag in unsere content.php-Datei ein, aber Sie müssen einen geeigneten Speicherort für Ihre Wertetabelle finden. Sie sollten dieses Tag auch so gestalten, dass es zum Rest Ihres Themas passt, worüber Sie hier mehr lesen können.

Wenn wir zu unserem Blog zurückkehren, können wir sehen, dass unser Tag eine Liste in unsere Bewertung eingefügt hat.

custom_field_example

Schick! Jetzt sind sowohl unsere Leser als auch unsere Rezensenten glücklich. Wir konnten einen benutzerdefinierten Beitragstyp erstellen, der es uns ermöglichte, Rezensionen über Kaffee zu speichern, und wir konnten unseren Rezensenten einen Ort geben, an dem sie alle ihre wichtigen Informationen für jede andere Rezension speichern können.