Werbung

Einer der Vorteile von WordPress ist seine Flexibilität. Dies gilt nicht nur für Posts und Seiten: Benutzerdefinierte Post-Typen können die Kernfunktionen auf praktisch alles erweitern.

Lassen Sie uns heute einen Blick darauf werfen, was Sie mit benutzerdefinierten Beitragstypen tun können, sowie ein kurzes praktisches Beispiel für das Erstellen einer Ereignisliste mit einem benutzerdefinierten Beitragstyp namens Veranstaltung.

Hinweis: Dieses Tutorial sollte nur zu Bildungszwecken betrachtet werden, damit Sie den Code lernen können, der zum Erstellen benutzerdefinierter Beitragstypen verwendet wird. Wenn Sie tatsächlich ein großartiges Plugin für die Auflistung von Ereignissen für Ihre WordPress-Site wünschen, versuchen Sie es Der Veranstaltungskalender, die gut entwickelt und kostenlos ist.

Was sind benutzerdefinierte Beitragstypen in WordPress?

Normalerweise besteht eine WordPress-Site aus zwei Arten von Inhalten: datierten Blog-Posts und statischen Seiten. Die meisten von uns, die haben

instagram viewer
Richten Sie ein WordPress-Blog ein Richten Sie Ihr Blog mit WordPress ein: Der ultimative LeitfadenSie möchten einen eigenen Blog starten, wissen aber nicht wie? Schauen Sie sich WordPress an, die derzeit leistungsstärkste Blogging-Plattform. Weiterlesen sind mit der Tatsache vertraut, dass Seiten für Dinge wie "Über mich" oder "Kontaktinformationen" verwendet werden sollten, während regelmäßige Beiträge zu Ihrem Blog gehen.

Was ist darüber hinaus, wenn Sie eine andere spezielle Art von Inhalten hinzufügen möchten, die nicht wirklich in die chronologische Reihenfolge des Blogs passen und sicherlich nicht statisch sind? Hier kommen benutzerdefinierte Beitragstypen ins Spiel.

Eine ziemlich häufige Anfrage für Club- oder Gruppenseiten ist, einen Veranstaltungskalender zu haben. Eine Lösung, die angewendet werden könnte, besteht darin, eine separate Ereigniskategorie von Posts zu erstellen. Das Problem dabei ist, dass sie in der Haupt-Blog-Timeline angezeigt werden und wir die beiden Konzepte wirklich vollständig trennen sollten.

Zu diesem Zweck erstellen wir einen neuen Beitragstyp namens "Ereignis", der über einen eigenen Abschnitt der Administrationsoberfläche verfügt.

So erstellen Sie einen benutzerdefinierten Beitragstyp in WordPress

Dazu passen wir Ihre Themendateien direkt an. Sie könnten den gleichen Effekt durch ein Plugin erzielen, aber um das Konzept und die Praxis zu demonstrieren, ist es einfacher, sie direkt zu schreiben. Wenn Sie dies nicht möchten, sollten Sie die Mein Plugin für benutzerdefinierte FunktionenHiermit können Sie Code zerstörungsfrei hinzufügen.

Meine benutzerdefinierten Funktionen

Öffnen Sie Ihre Themen functions.php Datei, die im Themenordner gespeichert ist wp-content / themen; oder verwenden Sie das Plugin "Meine benutzerdefinierten Funktionen", das Sie unter finden die Einstellungen > PHP Inserter. Fügen Sie am Ende der Datei diesen Code hinzu:

add_action ('init', 'events_init'); Funktion events_init () {$ args = array ('labels' => array ('name' => __ ('Events'), 'singular_name' => __ ('Event'),), 'public' => true, 'has_archive' => true, 'rewrite' => array ("slug" => "events"), 'unterstützt' => Array ('Thumbnail', 'Editor', 'Titel', 'Benutzerdefinierte Felder')); register_post_type ('events', $ args); }

Stellen Sie sicher, dass Sie dies vor dem Schließen von PHP tun (?>) Tag, falls es einen in Ihrem gibt functions.php Datei.

Nehmen Sie sich eine Weile Zeit, um den Code zu lesen. Es werden einige Eigenschaften (wie Beschriftungen für die Benutzeroberfläche) deklariert und wie die URLs (Umschreibungen) behandelt werden sollen sowie welche Funktionen dieser Post-Typ unterstützt. Sie können beispielsweise Ihrem benutzerdefinierten Beitragstyp mit der Eigenschaft "support" ein benutzerdefiniertes Feld hinzufügen.

In diesem Fall haben wir unseren Ereignistyp so deklariert, dass er Miniaturansichten, einen Inhaltseditor für die Ereignisbeschreibung, einen Ereignistitel und benutzerdefinierte Felder unterstützt. Wir haben auch hinzugefügt has_archiveWenn Sie zur Ereignisseite navigieren, wird ein Archiv aller Ereignisse angezeigt, ähnlich einem Blog.

Wenn Sie Ihr Thema speichern und Ihr Blog neu laden, sollten Sie jetzt einen neuen Ereignisbereich in Ihrer Admin-Seitenleiste sehen, vorausgesetzt, Sie haben keine Fehler. Yay!

Beachten Sie, dass mein aktuelles Thema die benutzerdefinierten Beitragstypen für alle Arten von zusätzlichen Funktionen im Administrator voll ausnutzt.

Fügen Sie jetzt einige Beispielereignisse hinzu.

Der Eventliste wurden zwei tolle Partys hinzugefügt!

Da dies ein Ereignis ist, erstellen Sie ein benutzerdefiniertes Feld mit dem Namen Datum um anzuzeigen, wann das Ereignis eintreten wird. Benutzen MM / TT / JJJJ Format.

Erstellen eines benutzerdefinierten Datumsfelds, um anzuzeigen, wann das Ereignis tatsächlich eintreten wird

Beachten Sie, dass wir benutzerdefinierte Felder verwenden müssen, um das tatsächliche Datum des Ereignisses und nicht das Datum des Beitrags anzugeben, da das Datum des Beitrags den Zeitpunkt der Veröffentlichung des Hinweises darstellt. Da Sie vermutlich Ereignisse hinzufügen, die in Zukunft auftreten werden, ist es sinnlos, das Veröffentlichungsdatum auf das tatsächliche Ereignisdatum festzulegen.

Wenn Sie versuchen, das Ereignis an dieser Stelle anzuzeigen, wird möglicherweise ein 404-Fehler angezeigt. Dies liegt daran, dass WordPress Ihre Permalink-URL-Struktur neu generieren muss, um diesen neuen Beitragstyp zu berücksichtigen. Gehe zum Einstellungen> Permalinks Seite und klicken Sie erneut auf Speichern.

Sie sollten nun in der Lage sein, den einzelnen Ereignisbeitrag anzuzeigen. Beachten Sie, dass der erste Teil der URL nach Ihrem Domainnamen lautet /events/. Wir haben dies in dieser Codezeile gewählt:

'rewrite' => array ("slug" => "events"),

Passen Sie die Seite mit der Ereignisliste an

Jetzt, da Sie all diese fantastischen Ereignisse in Ihrem Blog haben, wäre es schön, sie tatsächlich irgendwo aufzulisten. Zu diesem Zweck erstellen wir eine spezielle Seitenvorlage, damit Sie diese Seite neben Info oder Kontakt zu Ihren regulären Menüelementen hinzufügen können.

Da wir bereits festgelegt haben, dass der Post-Typ "Ereignis" ein Archiv enthalten soll, können Sie die Standardeinstellungen unter besuchen /events/. Beim Standard-Twenty-Seventeen-Thema auf meiner Testseite habe ich Folgendes erhalten:

Archivseite mit Ereignissen

Das Anpassen dieser Ausgabe hängt davon ab, welches Thema Sie verwenden. Die Abdeckung des gesamten WordPress-Template-Systems fällt nicht in den Geltungsbereich dieses Artikels. Für dieses Tutorial gehe ich jedoch davon aus, dass Sie Twenty-Seventeen verwenden.

Erstellen Sie zunächst eine Kopie von archive.phpund benenne es um in archive-events.php. Das ist ein Standard-Namenskonvention Das bedeutet, dass WordPress diese Vorlage automatisch verwendet, um das Archiv für den Beitragstyp "Ereignisse" anzuzeigen.

Bei der Prüfung der Datei haben die 27 Autoren einen Post-Format-Mechanismus bereitgestellt, der für unsere Anforderungen zu komplex ist:

/* * Fügen Sie die Post-Format-spezifische Vorlage für den Inhalt hinzu. * Wenn Sie dies in einem untergeordneten Thema überschreiben möchten, fügen Sie eine Datei hinzu. * heißt content -___. php (wobei ___ der Name des Post-Formats ist) und wird stattdessen verwendet. */ get_template_part ('template-parts / post / content', get_post_format ());

Hinweis: Ein untergeordnetes Thema wird empfohlen, da alle Aktualisierungen des ursprünglichen Themas Ihre Änderungen überschreiben. Dies WordPress-Support-Artikel beschreibt den Prozess des Erstellens eines untergeordneten Themas für 27. Der Kürze halber werde ich nur am ursprünglichen Thema arbeiten und es ist mir egal, ob meine Arbeit in einem späteren Update verloren geht.

Schneiden Sie den gesamten Block aus und fügen Sie stattdessen Folgendes ein. Dies ist nur eine vereinfachte Kopie dessen, was in diesen Post-Format-Vorlagen enthalten ist, um zu lernen:

php echo '

James hat einen BSc in künstlicher Intelligenz und ist CompTIA A + und Network + zertifiziert. Er ist der Hauptentwickler von MakeUseOf und verbringt seine Freizeit mit VR-Paintball und Brettspielen. Er baut seit seiner Kindheit PCs.