Vertrauenswürdige WordPress-Tutorials, wenn Sie sie am dringendsten benötigen.
Anfängerleitfaden für WordPress
WPB Cup
25 Millionen+
Websites, die unsere Plugins verwenden
16+
Jahre WordPress-Erfahrung
3000+
WordPress-Tutorials von Experten

Wie man benutzerdefinierte Beitragstypen in WordPress 3.0 verwendet

Seit Version 2.9 hat WordPress die Möglichkeit eingeführt, benutzerdefinierte Beitragstypen zu verwenden. Mit Version 3.0 werden die Dinge mit der Option, Panels für Ihre benutzerdefinierten Beitragstypen zu erstellen, noch weiter vorangetrieben. In diesem Tutorial zeigen wir Ihnen, wie Sie benutzerdefinierte Beitragstypen in Ihre Website in Ihre WordPress-Website implementieren.

Erstellen von benutzerdefinierten Beitragstypen – Verwendung von Plugins

Ab Version 3.0 hat WordPress keine integrierte Benutzeroberfläche (UI) zum Erstellen benutzerdefinierter Beitragstypen. Es gibt nur zwei Optionen, mit denen wir benutzerdefinierte Beitragstypen erstellen können: Plugins oder sie fest in die functions.php-Datei Ihres Themes zu codieren. Zuerst sehen wir uns an, wie wir Plugins zum Erstellen benutzerdefinierter Beitragstypen verwenden können.

Custom Post Type UI

Benutzerdefinierte Beitragstypen UI

Custom Post Type UI ist ein Plugin von Brad Williams von WebDevStudios, mit dem Sie benutzerdefinierte Beitragstypen und Taxonomien einfach erstellen können. Eines der coolsten Features dieses Plugins ist, dass es Code zur Erstellung benutzerdefinierter Beitragstypen generiert, den Sie dann in die functions.php-Datei Ihres Themes einfügen können. Eine der Eigenheiten dieses Plugins ist die Unfähigkeit, Taxonomien über alle Ihre Beitragstypen hinweg zu teilen.

Code für benutzerdefinierte Beitragstypen generieren

Klicken Sie im Custom Post Type UI-Panel auf "Neu hinzufügen".

Schaltfläche "Neu hinzufügen" für Custom Post Type UI

Als Nächstes erhalten Sie einige Optionen zum Ausfüllen. Der „Post Type Name“ ist das, was WordPress verwendet, um alle Beiträge von diesem Post_Type abzurufen. Das „Label“ ist das, was auf der Seitenleiste Ihres Dashboards angezeigt wird, genau wie das reguläre Menü „Post“. Wenn Sie die „Erweiterten Optionen anzeigen“ erweitern, sehen Sie einige weitere Optionen, die Sie konfigurieren können. Die meisten sind selbsterklärend, wie „Public“ und „Show UI“. Die erste, wenn sie auf true gesetzt ist, ermöglicht die Anzeige des Menüs für benutzerdefinierte Beitragstypen in der Seitenleiste, und die andere (Show UI), wenn sie auf true gesetzt ist, generiert das Menüfeld.

„Rewrite“ ist das, was es dem benutzerdefinierten Beitragstyp ermöglicht, SEO-freundliche WordPress-URLs (Permalinks) zu verwenden. Der „Custom Rewrite Slug“ kann beliebig eingestellt werden. WordPress verwendet diesen Slug, um die Permalinks zu generieren. Wenn wir also example.com mit einem benutzerdefinierten Rewrite-Slug von „movies“ haben, würde der Permalink Ihres benutzerdefinierten Beitragstyps wie example.com/movies aussehen.

Die WordPress-Funktion „Query Var“ ermöglicht es Ihnen, Ihre benutzerdefinierten Beitragstypen abzufragen. Wenn wir also das zuvor gegebene Beispiel verwenden, um auf einen Beitrag mit dem Titel My First Movie Post zuzugreifen, der unter dem Beitragstyp Movies geschrieben wurde, können wir example.com/?movies=my-first-movie-post eingeben. Die Abfragevariable sieht also so aus: ?posttypename

Schließlich können Sie die verschiedenen Funktionen auswählen, die von Ihrem benutzerdefinierten Beitragstyp unterstützt werden, wie z. B. Thumbnails/Featured Image und Auszüge.

Optionen für benutzerdefinierte Beitragstypen

Benutzerdefinierte Beitragstypen erstellen – Verwendung der functions.php-Datei

Custom Post Types hart codieren

Wenn Sie benutzerdefinierte Beitragstypen ohne Plugin verwenden möchten, fügen Sie einfach den folgenden Code zur functions.php-Datei Ihres Themes hinzu:

// Creates Movies post type
register_post_type('movies', array(
'label' => 'Movies',
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array('slug' => 'movies'),
'query_var' => true,
'supports' => array(
'title',
'editor',
'excerpt',
'trackbacks',
'custom-fields',
'comments',
'revisions',
'thumbnail',
'author',
'page-attributes',)
) );

Lassen Sie uns den Code zerlegen.

register_post_type( $post_type, $args ): Diese Funktion akzeptiert zwei Parameter: $post_type oder den Namen des Post-Typs und $args, ein Array von Argumenten.

label: Pluralname des Beitragstyps, der in der Seitenleiste des Admin-Bereichs angezeigt wird.

public: true/false. Ermöglicht das Auffüllen der Admin-Oberfläche mit Beiträgen dieses Typs.

show_ui: true/false. Zeigt eine Standard-Benutzeroberfläche zur Verwaltung dieses Beitragstyps an oder blendet sie aus.

capability_type: Standard: post Post-Typ, der für die Überprüfung von Lese-, Bearbeitungs- und Löschberechtigungen verwendet wird.

hierarchical: Ob der Beitragstyp hierarchisch ist.

rewrite: true/false. Standard: true Wenn das Slug-Argument eingegeben wird, wird der Slug-Name den Beiträgen vorangestellt.

query_var: true/false Legt den Namen des Beitragstyps als Abfragevariable fest.

supports: Standard: Titel und Autor Legt verschiedene Support-Funktionen fest, die der Beitragstyp zulässt.

Besuchen Sie das WordPress Codex für weitere Informationen zu register_post_type().

Anzeigen von Beiträgen aus benutzerdefinierten Beitragstypen

Um die Beiträge aus Ihrem benutzerdefinierten Beitragstyp anzuzeigen, fügen Sie die folgenden Codes in die Schleife ein. Ersetzen Sie „name“ durch den Namen Ihres Beitragstyps. Hinweis: Sie müssen die benutzerdefinierten Beitragstypen nicht in Ihrer index.php-Datei hinzufügen. Sie können eine benutzerdefinierte WordPress-Seite erstellen und die folgende Abfrage innerhalb von der Schleife ausführen.

$query = new WP_Query( 'post_type=name' );

Um Beiträge aus mehr als einem Beitragstyp anzuzeigen, ändern Sie den obigen Code wie folgt. Ändern Sie „movies“ in den Namen Ihres benutzerdefinierten Beitragstyps.

$query = new WP_Query( array(
	'post_type' => array( 'post', 'movies' )
) );

Der obige Code zeigt alle Beiträge vom regulären Beitragstyp (post) und vom benutzerdefinierten Beitragstyp, movies.

Das war's. Wir hoffen, dieses Tutorial war hilfreich und vergessen Sie nicht, Fragen in den Kommentaren zu posten.

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, wenn Sie auf einige unserer Links klicken, können wir eine Provision verdienen. Sehen Sie wie WPBeginner finanziert wird, warum das wichtig ist und wie Sie uns unterstützen können. Hier ist unser Redaktionsprozess.

Das ultimative WordPress-Toolkit

Erhalten Sie KOSTENLOSEN Zugang zu unserem Toolkit – eine Sammlung von WordPress-bezogenen Produkten und Ressourcen, die jeder Profi haben sollte!

Leserinteraktionen

58 CommentsLeave a Reply

  1. Ich habe zwei benutzerdefinierte Post-Typen erstellt, aber nur der erste wird auf meiner Seite angezeigt. Ich habe dies hinzugefügt:
    $query = new WP_Query( array( ‘post_type’ => array( ‘post’, ‘featured’, ‘latest’ )
    ) );

    in meiner Loop-Datei, aber nichts. Wie kann ich das lösen?

  2. Erstens, toller Artikel! Ich arbeite daran, benutzerdefinierte Beitragstypen per Code zu implementieren. Bemerkenswert ist, dass die aktuelle WordPress-Dokumentation (http://codex.wordpress.org/Function_Reference/query_posts) besagt, dass die Funktion query_posts im Allgemeinen nicht verwendet werden sollte und dass der pre_get_posts-Hook zum Ändern von Abfragen verwendet wird.

    „Es wird dringend empfohlen, stattdessen den pre_get_posts-Filter zu verwenden und die Hauptabfrage zu ändern, indem is_main_query überprüft wird.“

    Wieder ein toller Artikel, danke fürs Teilen.

    Cheers.

  3. WOW…für einen Anfänger, der WP zur Verwaltung seiner Website nutzt, ist das keineswegs Anfängermaterial! Ich werde wahrscheinlich einen WP-Entwickler kontaktieren müssen, um meine benutzerdefinierte Seite einzurichten, die ich möchte.

  4. query_posts( ‘post_type=movies’);
    ?>

    Ich bekomme das in meiner Child-Theme-Seitenvorlage von 2011 nicht zum Laufen. Wo würde ich es platzieren, um eine Seite mit Filmen abzurufen. Eigentlich sind es die Auszüge, die ich wirklich will. Danke Mark

  5. Wenn Sie dieses Plugin verwenden und den obigen Code zu loop.php hinzufügen, verlieren Sie die Kontrolle über Kategorien... mein benutzerdefinierter Beitragstyp wird zu allen Kategorien hinzugefügt... gibt es Hilfe?

    • @muntzdesigns Deshalb haben Sie mehrere Schleifen... Ihre Hauptblog-Schleife, archive.php, category.php usw. Auf einer benutzerdefinierten Website müssen Sie dies nutzen, damit es richtig funktioniert.

      • @wpbeginner@muntzdesigns Also füge ich den obigen Code zu allen Dateien hinzu? (loop.php, archive.php und category.php). Danke.

        • @muntzdesigns Nein. Sie fügen den Code nur auf den Startseiten hinzu. Das Problem, das Sie hatten, war, dass benutzerdefinierte Beitragstypen zu allen Kategorien hinzugefügt wurden… Sie müssen den obigen Code nur in die Hauptschleife einfügen. Erstellen Sie dann eine neue Schleife für das Kategoriearchiv, das Taxonomiearchiv, das Autorenarchiv…

  6. Was genau macht Content Type Identifier im CMS Press Plugin? Ich suche nach einer Möglichkeit, den Kategorie-Slug dem benutzerdefinierten Beitragstyp voranzustellen (example.com/category/post_type/postname), aber wenn ich %category%/%identifier%/%postname% in Content Type Identifier verwende, wird dies automatisch so transformiert: %categoryidentifierpostname

  7. Das ist eine großartige Anleitung zum Erstellen eines benutzerdefinierten Beitrags in WordPress. Die Schritte sind detailliert angegeben und leicht zu befolgen. Das ist eine große, große Hilfe!

  8. Wow, ich hatte das ganze CMS Press-Ding zum Laufen gebracht, konnte aber nicht herausfinden, wie ich es in den Beiträgen anzeigen lassen kann. Ich schätze, es ist schon so lange im Umlauf, dass jeder einfach davon ausgeht, dass es bereits bekannt sein sollte. Perfekte Antwort, um meinen benutzerdefinierten Beitragstyp in der Schleife anzuzeigen.

    Jerry Craig
    Mundschenk

  9. Ich habe das Plugin ausprobiert, sehr beeindruckend. Ich versuche jedoch, ein Seitenattribut aus den 'Seiten'-Attributen meines Themes anzuzeigen, d. h. die Möglichkeit, eine Option für eine Vollbildseite zu verwenden. Muss ich davon ausgehen, dass Ihr Plugin nur Attribute aus Post-Typ-Layouts und nicht aus Seiten-Typ-Layouts zieht? Alles, was ich möchte, ist die Option, einen Beitrag einem vollständigen, vordefinierten Template zuzuweisen.

    Tolle Arbeit – ich werde das viel nutzen.

    Prost
    Ed

  10. Ich habe den Plugin-Weg versucht, konnte aber den Beitrag nicht anzeigen lassen. Vielleicht liegt es daran, dass ich die Datei loop.php nicht finden konnte.

    Trotzdem vielen Dank, ich bin ziemlich sicher, dass es bald funktionieren wird.

    Ich möchte sagen, dass eine super tolle Sache, die man mit WordPress machen könnte, die Möglichkeit ist, benutzerdefinierte Ansichten von Inhalten zu erstellen, genau wie in Drupal mit dem Views-Modul.

    Ich weiß, dass es ein Plugin namens Pods und Pods CMS gibt, das das ermöglichen soll. Vielleicht könnten Sie den Entwickler bitten, Ihnen bei einem Beitrag auf wpbeginner zu helfen, wenn Sie es überhaupt nicht verstehen, so wie ich. Ich bin sicher, viele Leute würden das lieben. Die Darstellung von Ansichten ist es, was ein CMS wirklich zu einem wirklich dynamischen CMS macht.

    • Die loop.php existiert möglicherweise nicht in Ihrem Theme. Der Loop kann auch in Ihrer index.php, archive.php, category.php usw. gefunden werden. Sie können auch einen benutzerdefinierten Loop erstellen, wenn Sie möchten.

      Admin

  11. Gutes Tutorial, danke fürs Teilen.

    Ich habe eine Frage dazu.
    Ich habe einen benutzerdefinierten Beitragstyp über functions.php erstellt (einen Kalender), der eine benutzerdefinierte Metabox in der Admin-Oberfläche hat. Diese Metabox verwendet jQuery für ein Feld.(http://jqueryui.com/demos/datepicker/).
    Damit dieser Datepicker funktioniert, muss ich die erforderlichen Skripte einbetten.
    add_action(‘admin_enqueue_scripts’,’enqueue_my_scripts’);
    funktioniert, aber meine Skripte werden auf der gesamten Admin-Oberfläche geladen. (was das Standard-WP-Admin-jQuery stört)
    Also brauche ich den Hook für meinen benutzerdefinierten Beitragstyp.
    dies:
    add_action(‘register_post_type’,’enqueue_my_scripts’);
    funktioniert nicht, weil register_post_type kein Hook ist.
    Also, was ist der Hook für einen benutzerdefinierten Beitragstyp?

    • Sie könnten versuchen, Folgendes zu Ihrer Funktionsdefinition hinzuzufügen, bevor Sie das Skript registrieren:

      if(is_admin()) return;

      Also etwas wie:

      function some-function(){
      // wir brauchen das nicht auf Admin-Seiten, also...
      if(is_admin()) return;
      // das benutzerdefinierte Skript registrieren
      wp_enqueue_script( 'some-script' );
      }

  12. Wie bekomme ich jeden Inhaltstyp im Loop angezeigt? Ich meine, es ist fast wie Tumblr. Wenn ich ein Bild poste... muss ich den Code im Loop anpassen – dasselbe, wenn ich einen Link poste.

    • Sie können im Beitrag sehen, dass es eine Option gibt, sowohl benutzerdefinierte Beitragstypen als auch Beiträge innerhalb einer Schleife anzuzeigen...

      Admin

  13. Ich kann die Schleife nicht zum Abfragen von Beiträgen meines benutzerdefinierten Typs zum Laufen bringen. Ihr Beispiel scheint einfach genug zu sein, also habe ich Folgendes versucht: $var = query_posts( ‘post_type=sponsor’);

    Dann habe ich eine Schleife gestartet
    while ($var ->have_posts()) : $var ->the_post();
    Do stuff
    endwhile;

    Dies gibt einen PHP-Fehler zurück:
    Fatal error: Call to a member function have_posts() on a non-object in single-sponsor.php on line 22

    Zeile 22 ist die Zeile mit der while-Schleife.

    Ideen? Was mache ich falsch?

  14. Ich habe versucht, ein Tag für ein benutzerdefiniertes Feld zu erstellen, und wenn ich get_the_tags innerhalb der Schleife eines benutzerdefinierten Typs verwende, gibt es nichts aus.
    Irgendwelche Vorschläge?

  15. Ich bin sehr begeistert von dieser neuen Funktion ^-^ Du hast ein schönes Video gemacht. Obwohl in deinem Beispiel, warum benutzerdefinierte Beitragstypen verwenden und nicht einfach eine Kategorie Bücher und Filme für die Beiträge erstellen? Auf diese Weise ersparst du dir den ganzen Aufwand eines benutzerdefinierten Beitragstyps.

    • Erstens ermöglicht es Ihnen, Dinge anders zu organisieren. Zweitens können Sie ein völlig anderes Schreibpanel mit anderen Optionen haben. Es ermöglicht viel mehr Anpassungen...

      Admin

  16. Vielen Dank für diesen großartigen Artikel! Ich bin ein echter WP-Anfänger und vielleicht können Sie mir bei dieser Frage helfen:
    Ist es möglich, Archive eines benutzerdefinierten Post-Typs in der Seitenleiste anzuzeigen, so wie man es mit dem Plugin „display archives by cat“ von kwebble tun kann?

    • Ja, es ist möglich, benutzerdefinierte Beitragstypen als Archive anzuzeigen. Erstellen Sie einfach eine benutzerdefinierte Schleife in der Seitenleiste, um Beiträge oder Kategorien aus einem bestimmten Beitragstyp anzuzeigen.

      Admin

  17. Gibt es leicht verständliche Anleitungen, wie man benutzerdefinierten Beiträgen Optionen hinzufügt? Zum Beispiel, wenn ein Film Drama, Komödie, Horror ist…. diese Optionen als Kontrollkästchen INNERHALB des Bearbeitungsfensters für benutzerdefinierte Beiträge zu haben? Ich kann keine Anleitung oder ein Plugin dafür finden.

  18. Hallo, das war ein großartiger Artikel. Ich hoffe, Sie wissen vielleicht die Antwort auf meine Frage.
    In den letzten paar Zeilen haben Sie:

    query_posts(array('post_type' => array('post', 'movies')));

    gibt alle Beiträge und Beitragstypen namens Filme zurück.

    Wissen Sie, wie Sie sowohl Beitragstypen namens 'Filme' als auch Beiträge in der Kategorie 'Filme' zurückgeben, aber alle anderen Beiträge ausschließen, die diese Kategorie nicht haben?

    • Benutzerdefinierte Beitragstypen sind gut für Benutzer, die WordPress für mehr als einen Blog verwenden, z. B. als CMS. Nehmen wir an, Sie möchten eine Website haben, die Ihr Portfolio und Ihren Blog enthält. Offensichtlich möchten Sie nicht, dass Ihre Blogs genauso aussehen wie Ihr Portfolio. Dann sind benutzerdefinierte Beitragstypen nützlich. Dies ist eine sehr vielseitige Funktion, um WordPress auf die nächste Stufe zu heben. Für den durchschnittlichen Blog-Benutzer sind benutzerdefinierte Beitragstypen wahrscheinlich nicht erforderlich.

      Admin

      • Okay, aber ich versuche immer noch zu verstehen, was der Unterschied zwischen dem und der einfachen Kategorisierung von Dingen ist. Ich habe viele Websites für Leute erstellt, bei denen separate Seiten nur die Kategorie „aktuelle Ereignisse“ und eine andere die Kategorie „Projekte“ oder was auch immer auflisten. Wie ist das besser?

        • Das ist besser in Bezug auf die Organisation. Sie können benutzerdefinierte Taxonomien, Schreibbereiche usw. für einen bestimmten Beitragstyp haben.

  19. Ich kann nicht anders, als zu denken, dass dies nützlicher gewesen wäre, wenn Sie etwas Ungewöhnliches mit Beitragstypen gezeigt hätten, anstatt das alte „Filme und Bücher“-Zeug zu verwenden.

    Wie wäre es mit einem Sideblog mit Beitragstypen oder etwas Praktischerem? Das hier wiederholt nur, was der WP Codex irgendwann haben wird, wenn er nicht schon da ist.

    • Es tut uns leid, dass Sie das so empfinden, Chris. WP Codex wird kein Video haben, das Ihnen zeigt, wie das geht. Es spielt keine Rolle, welche Namen wir für die benutzerdefinierten Beitragstypen verwenden, entscheidend ist, wie man sie hinzufügt. Wir werden keine außergewöhnliche Website erstellen, nur um einen Beitrag über benutzerdefinierte Beitragstypen zu schreiben. Wenn Sie dieses Wissen suchen, ist es wahrscheinlich besser, es selbst zu tun. Dieser Blog muss immer noch die Bedürfnisse von Anfängern erfüllen, weshalb wir die Plugin-Methode geteilt haben.

      Admin

  20. Funktioniert das mit WordPress 2.9 oder nur für 3.0?

    Ich habe 3.0 ausprobiert, aber es gab eine seltsame Eigenart, bei der keiner meiner Plugins aktiviert werden konnte, selbst die, die sagten, sie seien aktiviert worden. War sehr seltsam!

    -Kevin

    • Dies würde mit 3.0 funktionieren, also verwenden Sie es nur auf 3.0. Versuchen Sie, WordPress 3.0 neu zu installieren, wir betreiben einige Websites damit.

      Admin

  21. Habe gerade das Video gesehen...

    Stimmt es, dass wir PHP-Dateien bearbeiten müssen (= Hardcoding), damit das Ganze funktioniert?

    • Nein, Sie müssen das eine oder das andere tun. In unserem Video haben wir beide Wege gezeigt. Entweder Sie machen es per Hardcoding oder über das Plugin.

      Admin

      • Allright, I see, thnx! ;)

        Dann hast du wohl auf die Hardcore-Tour angefangen? Damals, als ich nur den ganzen Coding-Kram sah, habe ich einfach aufgehört. Deshalb habe ich den Plugin-Weg wohl nicht gesehen…

  22. Sehr schöner Artikel. Das Custom Post Type UI Plugin hat Optionen, die den rohen PHP-Code zum Registrieren von Post-Typen sehr ähnlich sind, was großartig für Entwickler ist.

    Danke für die Vorstellung vieler nützlicher Plugins für die Arbeit mit benutzerdefinierten Beitragstypen.

  23. Ich freue mich, dass WordPress benutzerdefinierte Beitragstypen direkt in das WP-Framework integriert hat. Ich sehe jedoch nicht, wie es besser ist, als bereits verfügbare Plugins wie Magic Fields oder Flutter zu verwenden. Mit diesen Plugins erhalten Sie den gleichen Effekt plus einfach einzurichtende benutzerdefinierte Felder mit vielen verschiedenen Typen und Flexibilität bei der Eingabe und Anzeige Ihrer Daten. Unterstützt WP 3.0 so etwas direkt ab Werk?

    • Sie können eine Benutzeroberfläche für benutzerdefinierte Felder und so ziemlich alles im Backend mit Custom Post Types erstellen. Sie haben Recht, dass diese Plugins es für Benutzer sehr einfach machen, aber wenn eines dieser Plugins in der Entwicklung fehlschlägt, haben Sie keine andere Wahl mehr.

      Admin

      • Fair genug. Ich habe ein wenig mit der Beta herumgespielt, aber nicht so viel, wie ich sollte, nehme ich an. Es wäre aufregend, wenn es in diese Richtung ginge. Da ich erfahren darin bin, diese Plugins zu verwenden, erstelle ich jetzt fast keine Website mehr ohne eines.

        Es wäre also großartig, wenn all diese Werkzeuge verfügbar wären und innerhalb der ursprünglichen Anwendung verwaltet würden. Ich kann mir vorstellen, dass dies zu einem besseren Backend-Management führt und mehr Leute dazu ermutigt, dazu beizutragen, anstatt einer kleineren Gruppe, die ein bestimmtes Plugin unterstützt.

        • Ich denke, sie haben absichtlich einige der benutzerdefinierten Beitragstyp-Codes als Code belassen. Um den durchschnittlichen Benutzer damit zu belästigen.

    • Ich kann keine Taxonomien in Twentyeleven anzeigen lassen und finde auch kein Tutorial, das mir das von Anfang bis Ende zeigt. Alle scheinen sich auf TwentyTen und den Loop zu konzentrieren.

Kommentar hinterlassen

Vielen Dank, dass Sie einen Kommentar hinterlassen. Bitte beachten Sie, dass alle Kommentare gemäß unserer Kommentarrichtlinie moderiert werden und Ihre E-Mail-Adresse NICHT veröffentlicht wird. Bitte verwenden Sie KEINE Schlüsselwörter im Namensfeld. Führen wir ein persönliches und bedeutungsvolles Gespräch.