Die meisten Postformate erhalten Postformate in der Schleife verwenden

Im ersten Teil dieser Serie habe ich diskutiert, was Postformate sind und warum Sie sie verwenden sollten. Nun ist es an der Zeit zu lernen, wie Sie Postformate zur Steuerung der Hauptschleife in Ihrem Design verwenden, um jeden Posttyp richtig anzuzeigen.


Postformate aktivieren

Bevor Sie Postformate in einem Design verwenden können, müssen Sie die Unterstützung für diese registrieren. Für jeden Beitragstyp, integrierte Posts (dh Beiträge und Seiten) oder benutzerdefinierte Beitragstypen muss der Eintrag separat unterstützt werden. 

Für Beiträge verwenden Sie die Funktion add_theme_support () als Teil Ihres Theme-Setups in Functions.php, so was:

add_action ('after_setup_theme', 'slug_post_formats'); Funktion slug_post_formats () add_theme_support ('Postformate', Array ('beiseite', 'Bild', 'Video', 'Audio', 'Zitat', 'Link', 'Galerie',)); 

Für andere Beitragstypen, einschließlich Seiten und benutzerdefinierte Beitragstypen, würden Sie "Hinzufügen" verwenden post_type_support (). Wenn Sie möchten, dass Seiten dieselben Postformate unterstützen wie diese, würden Sie WordPress einfach mitteilen, dass es Ihnen gefällt:

add_post_type_support ('Seite', 'Post-Formate');

Sie können einen ähnlichen Code verwenden, um Unterstützung für benutzerdefinierte Beitragstypen hinzuzufügen, oder Sie fügen dem Argument "Unterstützungen" in "Postformate" hinzu register_post_type () wenn Sie den Beitragstyp erstellen.

Verschiedene Postformate für verschiedene Posttypen

Im vorherigen Abschnitt hat der von mir gezeigte Code Unterstützung für andere Beitragstypen mit den gleichen Beitragsformaten hinzugefügt, die für Beiträge aktiviert waren. Wenn Sie möchten, dass Ihr benutzerdefinierter Beitragstyp verschiedene Beitragsformate unterstützt, ist dies auch mit möglich add_post_type_support () indem Sie einfach ein Array von Postformaten übergeben.

Um beispielsweise Seiten und Galerien Unterstützung zu bieten, während Sie Video zu einem benutzerdefinierten Beitragstyp namens "Produkte" und allen Beitragsformaten zu Beiträgen hinzufügen, würden Sie Folgendes tun:

add_action ('after_setup_theme', 'slug_post_formats'); Funktion slug_post_formats () add_theme_support ('Postformate', Array ('beiseite', 'Bild', 'Video', 'Audio', 'Zitat', 'Link', 'Galerie',)); add_post_type_support ('Seiten', 'Post-Formate', Array ('Galerie', 'Bild')); add_post_type_support ('produkte', 'postformate', array ('video')); 

Verwenden von Postformaten in der Schleife

Jetzt, da Ihr Design Postformate unterstützt, ist es an der Zeit, zu lernen, wie man diese verwendet.

Get_template_part () vorstellen

Was Postformate so cool macht, ist, dass wir eine Hauptschleife haben können, mit unterschiedlichen Markierungen für jedes Postformat in separaten Dateien. Diese Funktionalität beruht auf zwei Funktionen, von denen Sie sich zuerst mit der Funktion vertraut machen sollten get_template_part ().

Während es verwendet benötigen(), wenn Sie im Quellcode weit genug zurückverfolgen, get_template_part () gibt uns eine flexiblere und nachsichtigere Möglichkeit, Schablonendateien in andere Schablonen aufzunehmen, die wir nicht mitbekommen benötigen(). Ich sage verzeihen, weil im Gegensatz zu benötigen(), get_template_part () kann mit Dateipfaden arbeiten, die nicht existieren.

Zum Beispiel, get_template_part ('content', 'foo'); versucht, die Datei zu laden content-foo.php, Wenn es aber nicht existiert, wird versucht zu laden content.php stattdessen. Im Gegensatz, erfordern ('content-foo.php'); wird einen Fehler zurückgeben, wenn content-foo.php existiert nicht, ob content.php existiert oder nicht.

Denk daran, dass get_template_part () ist auf diese spezifische Verwendung zugeschnitten, da Dateien relativ zum Stamm des aktuellen Themas geladen werden. Als Ergebnis brauchen Sie nicht zu verwenden get_template_directory_uri () oder ähnliche Funktionen, um den Pfad anzugeben. Sie können es immer noch verwenden, um Dateien in Unterverzeichnisse des Hauptverzeichnisses des Themas zu laden, indem Sie den Pfad relativ zum Stamm des Themas im ersten Argument angeben. Zum Beispiel laden content-main.php aus einem Unterverzeichnis namens "parts", das Sie verwenden würden get_template_part ('parts / content', 'main');.

Einführung in get_post_format ()

Die zweite Funktion, die dies alles möglich macht, ist get_post_format (), Das gibt das Post-Format für den aktuellen Post in der Schleife zurück. Obwohl es viele Zwecke hat, ist diese Funktion der Hauptzweck get_template_part (). Dies ermöglicht es uns, Inhaltselemente hinzuzufügen, die für ein Postformat spezifisch sind, wie wir im nächsten Abschnitt sehen werden.

Wegen der Flexibilität von get_post_format () Im letzten Abschnitt besprochen, können wir verwenden get_post_format () als eines seiner Argumente, auch wenn für alle verwendeten Postformate kein Inhaltsteil im Design vorhanden ist.

Einschließen von Schablonenteilen in die Schleife

Nachdem Sie nun die beiden Funktionen verstanden haben, die postformatspezifische Inhaltsteile ermöglichen, lassen Sie uns alles zusammenfassen. 

Schauen Sie sich die Hauptschleife von Twenty Fourteen an:

Wie Sie sehen, ist dies eine sehr einfache Schleife. Das eigentliche Markup für die Beiträge ist in den einzelnen Inhaltsteilen enthalten. Wegen der verzeihenden Natur von get_template_part () Wenn ein Inhaltsteil für ein bestimmtes Postformat nicht vorhanden ist, greift WordPress wieder auf content.php. Das heißt, wenn der aktuelle Beitrag das Format 'Video' hat, versucht WordPress zuerst zu laden content-video.php, und wenn das nicht gefunden wird, dann wird es zurückgreifen content.php.

Untergeordnete Themen und Inhaltsteile

Wie ich schon sagte, get_template_part () ist Kindthema bewusst. Das bedeutet, dass WordPress vor dem übergeordneten Design zuerst nach einer Datei im Ordner des untergeordneten Designs sucht, wenn ein untergeordnetes Design verwendet wird.

Daher ist es eine gute Praxis zu verwenden get_template_part ('content', get_post_format ()); Um Ihre Hauptschleife in Ihre Seite aufzunehmen, auch wenn Ihr Thema keine Postformate unterstützt. Auf diese Weise kann ein untergeordnetes Design die Unterstützung für ein Post-Format erklären und eigene Inhaltsteile für die Post-Formate hinzufügen, die es unterstützt.


Gehen Sie weiter und formatieren Sie Beiträge

Jetzt wissen Sie, wie Sie Ihrem Theme Unterstützung für Postformate hinzufügen und verschiedene Schablonenteile basierend auf dem Postformat festlegen können. Es ist an der Zeit, darüber nachzudenken, wie sie in Ihrem Theme verwendet werden sollen. Wie das geht, werde ich im Rest dieser Serie besprechen. Schauen Sie sich auch den Code von Themen wie Twenty Fourteen an, die Postformate gut implementieren, um Inspiration zu erhalten.