it-swarm.com.de

Vorlage für Beitragsformate

Ich möchte wissen, welche Vorlage WordPress verwendet, um Archivseiten im Post-Format anzuzeigen. Was ist eine übergeordnete Vorlagendatei, die verwendet wird, wenn keine angegebene Vorlagendatei vorhanden ist, und welche angegebene Vorlagendatei deckt alle Vorlagen für Postformate ab? Gibt es auch eine Möglichkeit zu wissen, ob die geladene Seite eine Archivseite für Postformate ist?

2
vlad

Beitragsformate werden verwendet, um Beiträge entsprechend ihrem "Meta" -Inhalt anzupassen. Es handelt sich jedoch immer um Beiträge, die als Beiträge auf Archiv- und Kategorieseiten aufgelistet werden.

Was ist eine übergeordnete Vorlagendatei, die verwendet wird, wenn keine angegebene Vorlagendatei vorhanden ist, und welche angegebene Vorlagendatei deckt alle Vorlagen für Postformate ab?

Bitte werfen Sie einen Blick auf den Abschnitt WordPress Codex - Vorlagenhierarchie .

Ich möchte wissen, welche Vorlage WordPress verwendet, um Archivseiten im Post-Format anzuzeigen.

Auf einer Archivseite (Beiträge nach Jahr, Monat, Tag) wird normalerweise die Vorlage archive.php ausgeführt. Eine Kategoriearchivseite wird über die Vorlage category.php ausgeführt.

Gibt es auch eine Möglichkeit zu wissen, ob die geladene Seite eine Archivseite für Postformate ist?

Ja da ist. Sie können is_archive();Conditional Tag verwenden.

UPDATE

gibt es eine Möglichkeit, alle Beiträge eines Beitragsformats anzuzeigen? Wenn Sie beispielsweise die Vorlage archive.php verwenden, werden alle Beiträge mit dem Beitragstyp "Bild" oder "Zitat" angezeigt.

Ja da ist. Mit pre_get_posts action hook können Sie in Ihrer archive.php bestimmte Formatbeiträge anzeigen. Wenn Sie sich WP_Query Argumente ansehen, werden Sie tax_query finden. Es handelt sich um eine Reihe von Taxonomieparametern.

Beispielverwendung:

//in functions.php
add_action( 'pre_get_posts', 'wpse_show_posts_by_format' );
function wpse_show_posts_by_format($query){
  //We are not in admin panel and this is the main query
  if( !$query->is_admin && $query->is_main_query() ){
    //We are in an archive page
    if( $query->is_archive() ){
      $taxquery = array(
        array(
          'taxonomy' => 'post_format',
          'field'    => 'slug',
          'terms'    => array( 'post-format-quote', 'post-format-image' )
        )
      );
    //Now adding | updating only to main query 'tax_query' var
    $query->set( 'tax_query', $taxquery );
    }
  }
}

Ich hoffe es hilft!

3
iEmanuele

Das Post-Format isttaxonomy.

Weder Beitragstyp noch Meta.

Der Unterschied zu Kategorien, Tags, benutzerdefinierten Taxonomien und Post-Format besteht darin, dass die Post-Format-Begriffe (zu diesem Zeitpunkt) aus einem Satz von 9 Begriffen bestehen können.

Beachten Sie, dass das Post-Format "Standard" nicht existiert. Wenn Sie einen Post auf das Standard-Post-Format setzen, bedeutet dies, dass Sie kein Post-Format festlegen.

Es kann also kein beliebiges Post-Format geben, aber die existierenden sindtaxonomy terms.

Beachten Sie auch, dass der Slug dieser Taxonomie so etwas wie post-format-{$format} ist, z. post-format-quote.

Was ist eine übergeordnete Vorlagendatei, die verwendet wird, wenn keine angegebene Vorlagendatei vorhanden ist, und welche angegebene Vorlagendatei deckt alle Vorlagen für Postformate ab?

Sobald es sich um Taxonomiebegriffe handelt, müssen Sie Vorlagenhierarchie in Bezug auf Taxonomie anzeigen:

taxonomy-post_format-{$slug}.php (z. B. taxonomy-post_format-post-format-quote.php) ist also die erste Vorlage, nach der wp sucht.

Danach taxonomy-post_format.php (dies ist in 13 Themen enthalten), dann taxonomy.php, archive.php und index.php.

Gibt es auch eine Möglichkeit zu wissen, ob die geladene Seite eine Archivseite für Postformate ist?

Wieder ist es eine Taxonomie. Also funktionieren is_tax() oder is_tax('post_format') und is_tax('post_format', 'post-format-quote').

Ich wette, Sie fragen sich jetztwie lautet die URL, über die Post-Format-Archive angefordert werden?

Ich muss sagen, dass, wenn keine hübschen Permalinks aktiviert sind, der Link so etwas wie http://example.com/?post_format=quote ist (http://example.com/?post_format=post-format-quote wird auch funktionieren).

Wenn hübsche Permalinks aktiviert sind, sieht es standardmäßig so aus: http://example.com/type/quote. (http://example.com/type/post-format-quote/ wird auch funktionieren)

Beachten Sie, dass die URL http://example.com/type/ (ohne angegebenen Typ) zu einem 404-Fehler führt.

Ich habe 'Standard' gesagt, weil die Neuschreibbasis ' type ' für das Post-Format über den post_format_rewrite_base-Filter geändert werden kann.

Um jedoch den richtigen Link zum Post-Format-Archiv zu erhalten, können Sie die Funktion get_post_format_link verwenden.

2
gmazzap