Wenn man in WordPress mit benutzerdefinierten Beitragstypen (Custom Post Type) arbeitet, hat man vielleicht schon festgestellt, dass automatisch alle Beitrags-Formate (Post Formats), welche für den standard Beitragstyp („Post“) freigegeben sind, ebenso auch für benutzerdefinierte Beitragstypen gelten. Je nach Beitragstyp, macht es aber nicht immer Sinn, die Beitrags-Formate wie z.B. „image“, „video“, „quote“, „link“, „gallery“ oder „audio“ auch anzubieten.
Dann gibt es natürlich noch das Standard-Beitragsformat, welches immer dann ausgewählt ist, wenn man kein anderes definiert hat. Die geläufigsten Beitrags-Format in WordPress sind dabei Standard, Galerie, Zitat, Video und Audio. Weitere Information zu den WordPress Beitragsformaten findest du hier.
Um neben den Standard Beitragsformat auch weitere Formate anzubieten, musst du dein Theme um den folgenden Code erweitern:
Innerhalb des Arrays definierst du die gewünschten Beitragsformate, welche unterstützt werden sollen.
Das Problem ist, dass alle Beitragsformate, welche für den Standard-Beitragstypen definiert sind, automatisch auch für alle anderen individuellen Beitragstypen gelten. Bspw. machen Beitrags-Formate wie „Chat“, „Zitat“, oder „Audio“ bei einem Rezept-Beitragstypen weniger Sinn, sind im WordPress Backend aber dennoch für diesen speziellen Typ auswählbar. Das kann hier und da zur Verwirrung führen, wenn bspw. die Beitragsformate für diesen Beitragstyp gar nicht formatiert oder überhaupt erwünscht sind.
Die folgende Vorgehensweise hilft uns bei diesem Dilemma. Zunächst definieren wir die Beitragsformate (Post Formats) nicht allgemein wie im oberen Code-Beispiel. Wir behandeln die Unterstützung von individuellen Formaten je nach benutzerdefinierten Beitragstyp.
Im folgenden Beispiel definieren wir die unterstützen Beitrags-Formate ausschließlich für den Standard WordPress Beitragstypen. Füge dazu diesen Code-Schnipsel, bspw. in die functions.php deines Themes ein:
Sehr ähnlich wie im oberen Beispiel, definieren wir jetzt die gewünschten Beitragsformate ausschließlich für unseren benutzerdefinierten Beitragstypen. In diesem Beispiel habe ich für den Beitragstype „Rezept“ nur die Formate „Video“ und „Gallery“ freigegeben.
Die WordPress-Filter load-post.php
und load-post-new.php
sorgen dafür, dass unsere Funktion beim bearbeiten oder hinzufügen eines Beitrags angewendet werden.