Seit Version 3.0 von WordPress werden die Custom Post Types unterstützt und man kann eigene Typen von Inhalten definieren - eher zu verstehen wie Seiten, nicht wie Artikel! Dabei kann automatisiert die Permalink-Struktur von WordPress unterstützt werden. Die bedeutet, wenn man einen eigenen Post Type anlegt, dann kann dieser bei aktiver Verwendung von Permalinks genutzt werden.
Aber die Permalinks klappen erst dann, wenn die Rewrite Rules von WordPress neu erzeugt wurden - vermutlich kommen da die vielen Fragen her. Wenn man einen neuen Post Type anlegt und damit spielt, kommt oft die Frage, warum der Aufruf des Custom Beitrags auf einen 404 führt - WordPress kennt die URL-Struktur in den Permalinks nicht und immer wieder vergisst man, dass man die Rewrite Rules neu erzeugen muss.
Im einfachsten Fall speichert man das Setzen der Permalinks in den Einstellungen neu - alternativ kann man in sein Plugin oder das Theme die Funktion flush_rewrite_rules() integrieren. Diese bewirkt das erneute Setzen der Rewrite Rules.
Wichtig ist, dies nur beim Aktivieren bzw. Deaktivieren des Plugins oder Themes zu tun; ansonsten wird man schnell in die Performance-Krenze laufen.
* Ich überlege, ob ich ein Plugin mit Verwendung der Custom Post Types bereit stelle, wobei ich verschiedene Erweiterungen integriert habe, die mir typisch in der Verwendung der Post Types erscheinen. Wie ist dazu die Meinung, oder ist dies eher Entwicklerwerkzeug und bei diesen Anwendern bekannt und damit für die Leser uninteressant oder zu viel Code?
Nö, ich würde dies begrüßen. Ob es Entwicklerwerkzeug ist, hängt immer von der Sicht des Einzelnen ab. Für "blutige" Anfänger sicherlich, für Fortgeschrittene eher nicht.
In meiner lokalen Entwicklungsumgebung setze ich zwar schon WP3 ein, allerdings nicht mit dem neuen Standard-Thema. Auf einigen Seiten habe von den neuen Custom Post Type gelesen (nun auch hier), habe aber ehrlicherweise bis jetzt nicht geschnallt, was sich damit machen läßt. Mir fehlt es an konkreten Beispielen, die mir die Einsatzmöglichkeiten aufzeigen. Vielleicht fällt dann ja bei mir der Groschen
Ob dann ein Plugin von Nöten oder Sinnvoll ist, werde ich dann erst feststellen können. Finde es aber Lobenswert, dass sich schon jemand Gedanken darüber macht - sind ja nicht alle so Begriffstutzig wie ich....
ich fände so ein Plugin Klasse, bin noch nicht richtig klargekommen damit
Hört sich doch super an:
"5 Möglichkeiten den WordPress Custom Post Type einzusetzen"
mfg
Die Beschreibung für den Fix ist sehr leicht zu finden. Fraglich ist, ob ein Plugin mit voreingestellten Settings leichter zu finden sein wird.
Ich muss aber ebenfalls erst testen, was Custom Post Type wirklich können.
Ich habe es auf einer Seite schon testhalber probiert, es ist noch sehr schwer das ganze einzusetzen wie ich finde. Deshalb würde ich ein Plugin sehr begrüßen
hier ein sehr gutes neues Plugin (für WP3), dass in der Hinsicht keine Wünsche offen lässt (gefunden über think vitamin blog) -> http://www.wpeasyposttypes.com
Hallo Frank,
mich würde mindestens interessieren, was du integrieren würdest, danke
Es geht mir nicht darum aufzuzeigen, wie man mit einem Plugin die Möglichkeiten nutzt, ich würde an einem Beispiel die Nutzung aufzeigen, also für Leute, die den Code unter Kontrolle haben wollen. Ich würde mir nie einen Custom Post Type mit einem Plugin erstellen, damit mache ich mich abhängig von einem Plugin - mag ich nie, ich will am WP Standard bleiben und unabhängig von Plugins sein - man weiß ja nie, was mal ist.
Mein Plugin zeigt die Verwendung der neuen Möglichkeiten und die damit verbunden Möglichkeiten, Redirect, Filter im Backend, Integration in Loop u.ä. Die meisten Tutorials sind Kopieen anderer Tutorials und hören auf, wo die Probleme beginnen. Ebenso gehört der Code für mich nicht in das Theme, da es eine Funktion für Inhalte ist und damit ein Plugin, unabhängig vom Theme, vom Design. Aktuell zeigen die meisten den Code in der functions.php, was das Wechseln des Themes zur Tortour macht.
Ja, ich bin an einem solchen Plugin interessiert, da ich glaube, dass es das Verständnis für und die Einarbeitung in Custom Post Types vereinfachen würde.
Heißt das, Du würdest gar keine Custom Post Typen verwenden, oder nur nicht mit einem Plugin. Wenn nicht mit einem Plugin, wie denn sonst?
@Putzlowitsch: ich verwende es sehr gern und liebe diese neue Möglichkeit; aber ich würde die Implementierung nicht mit einem Plugin realisieren, welches mir den Code erspart, wo man quasi alles zusammen klicken kann. Meine eigene Lösung ist dann natürlich ein Plugin, wo genau das drin ist, was ich brauche. Ich meinte mit Plugin Lösungen, die einem den Code abnehmen - die sind toll zum Spielen, machen aber abhängig und ich meine ebenso, dass Custom Post Types verstanden werten sollten, bevor man sie implementiert und man sich der Konsequenzen bewusst ist; es ist kein Allheilmittel.
Achso, danke. Dann hatte ich das nur falsch interpreriert.
Hatte schon gedacht, es gibt noch eine andere Möglichkeit, außer Plugin, functions.php, my-hacks.php, /wp-content/mu-plugins und Eingriffen in die core.-Dateien soetwas zu realisieren.
@Putzlowitsch: nein, aktuell habe ich nur das Gefühl, dass die bekannten Tutorials alles in das Theme klatschen und die Leute machen meist nur Copy/Paste und am Ende ist das Geschrei groß. Das ist in den meisten Fällen kein Problem, bei dieser Möglichkeit handelt es sich aber um Inhalte, eventuell wichtige Daten und da sollte man einfach den Unterschied zw. Theme und Plugin-Schnittstelle bedenken und den Lösungsansatz im Vorfeld durchdenken und nicht wie so oft durch Probieren ans Ziel kommen und dann am Ende merken, dass es so zu einer Abhängigkeit führt.
Ich finde sogenannte hardcoded Funktionalität super und würde ein Tutorial bzw. einen technischen Exkurs zum Theme CustomPostTypes per Plug-in sehr begrüßen.
Was die Functions.php angeht ist sie doch auch nur eine Include welches ziemlich am Anfang der Laufzeit zu Zuge kommt. Das sie Theme-abhängig ist währe es wirklich "schmutziges" Coden. Gibt es hier noch code-ethisch reine Alternativen (von Haus aus)?
@HerrZ: ja, die Plugin-Schnittstelle. Man kann auch Plugins mit Themes aktivieren oder andere Konstrukte bauen
Man kann in WordPress nur über diverse Wege Code einbringen, die meist genutzte ist via Theme oder Plugin. Alle anderen Möglichkeiten sind explizit für andere Wege und sollten nicht in Verbindung mit Themes genutzt werden. So gibt es Schnittstellen für die Sprache, den Cache, den DB-Error, den Wartungsmodus und die Möglichkeit einige Funktionen des Core zu ersetzen.
Was mir fehlt ist ne Möglichkeit die Übersichtsseite zu permalinken:
http://domain.de/customposttypes/custompost
funktioniert.
http://domain.de/customposttypes
dagegen nicht.
Gibt's da schon eine Lösung?
Hallo,
also solch ein Plugin würde ich auch sehr begrüßen - mir persönlich fällt die Nutzung auch recht schwer, ein Plugin das dies erleichtern würde wäre bestimmt für viele Leute eine gute Sache. Also mach dich mal dran
danke für den tollen Artikel!
@Kevin (28.7.) - falls es noch aktuell ist: archive-customposttypes.php als Template anlegen müsste helfen.
Weiß jemand der Anwesenden, ob/wie ich unterschiedliche Permalink-Strukturen für normale Posts und Custom Posts hinbekomme? Für die normalen Posts habe ich /news/%year%/%postname% eingestellt, das führt beim Custom Post zu /news/customposttypeX/%postname%
Das "news" hätte ich natürlich gerne weg
Aber ich möchte nicht die bisherigen URLs ungültig machen. Mein Category-Slug ist übrigens "thema" - das geht unabhängig und ich nutze es nur für die RSS-Feeds.
Kleines Beispiel:
im Construct rufe ich die Methode auf:
$this->add_new_rules();Sehr interessante Sache, eine kleine Frage hätte ich noch. Wenn ich jetzt im Blog auf der Startseite eine ganz normale chronologische Blogansicht habe und die Post Types nutze, ist es dann möglich, dass ein neuer Beitrag, den ich unter einem Post Type erstellt habe, wie alle anderen Artikel mit dort chronologisch erscheint?
@René: ja, entweder via Hook (
pre_get_posts) die Custom Posts in den Loop holen und das Template der Startseite erweitern, also den Loop mit einem Query ausstatten und die Custom Posts rein holen.Anbei ein kleines Bsp.
add_filter( 'pre_get_posts', 'add_to_query' ); // ads to query function add_to_query( $query ) { if ( is_admin() ) return; if ( is_home() || is_front_page() && ( FALSE == $query->query_vars['suppress_filters'] ) ) { $query->set( 'post_type', array( 'post', 'dein_post_type' ) ); return $query; }Kann man verschiedene Post-Type-..Posts (wie das klingt oô) auch in ein und demselben Loop darstellen? Hab das nämlich noch nicht gesehen und fände es eigentlich ziemlich praktisch.. (Was vermutlich heißt, dass es nicht geht.. :'D)
LG!
@Patricia: ja, man kann unendliche viele post_types laden, egal wo.
Dieser Artikel übersetzt Wort für Wort einen Artikel von WPEngineer. Sowas muss doch nicht sein!
Oh doch, denn beide Seiten gehören mir und hier schreibe ich deutsch und auf WPE englisch. Da stört mich eher dein Name als Kommentator, der sollte besser auf Menschen passen, der nächste fliegt in den Spam.