web-dev-qa-db-fra.com

Modèle de formats de post

Je voudrais savoir quel modèle Wordpress utilise pour afficher les pages d'archives de formats de messages? Quel est le fichier de modèle parent utilisé lorsqu'il n'y a pas de fichier de modèle spécifié et quel est le fichier de modèle spécifié qui couvre tous les modèles de formats de publication? En outre, y a-t-il un moyen de savoir si la page chargée est une page d'archive de formats post?

2
vlad

Les formats de publication sont utilisés pour personnaliser les publications en fonction de leur contenu "méta", mais ce sont toujours des publications. Ces publications seront donc répertoriées sur les pages d’archives et de catégories.

Quel est le fichier de modèle parent utilisé lorsqu'il n'y a pas de fichier de modèle spécifié et quel est le fichier de modèle spécifié qui couvre tous les modèles de formats de publication?

Veuillez consulter WordPress Codex - Template Hierarchy section.

Je voudrais savoir quel modèle Wordpress utilise pour afficher les pages d'archives de formats de messages?

Une page d'archive (publications par année, mois, jour), fonctionne normalement sur le modèle archive.php. Une page d'archivage de catégories s'étend sur le modèle category.php.

En outre, y a-t-il un moyen de savoir si la page chargée est une page d'archive de formats post?

Oui il y a. Vous pouvez utiliser is_archive();Balise conditionnelle .

UPDATE

existe-t-il un moyen d'afficher toutes les publications d'un format de publication? Par exemple, en utilisant le modèle archive.php, affichez tous les messages avec le type de message 'image' ou 'quote'?

Oui il y a. Vous pouvez afficher des publications au format spécifique dans votre archive.php avec le hook pre_get_posts action. Si vous regardez WP_Query arguments, vous trouverez tax_query. C'est un tableau de paramètres de taxonomie.

Exemple d'utilisation:

//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 );
    }
  }
}

J'espère que ça aide!

3
iEmanuele

Le format du message est untaxonomie.

Pas de type de message, ni méta.

La différence entre les catégories, les balises, les taxonomies personnalisées et le format de publication est que les termes de format de publication peuvent être (à ce moment) un ensemble de 9 termes .

Notez que le format de publication 'Standard' n'existe pas, définir une publication sur un format de publication standard signifie ne pas définir de format de publication.

Le format de publication arbitraire ne peut donc pas exister, mais ceux qui existent sonttermes de taxonomie.

Notez également que le slug de cette taxonomie est quelque chose comme post-format-{$format}, par exemple. post-format-quote.

Quel est le fichier de modèle parent utilisé lorsqu'il n'y a pas de fichier de modèle spécifié et quel est le fichier de modèle spécifié qui couvre tous les modèles de formats de publication?

Une fois qu’ils sont des termes de taxonomie, vous devez voir Hiérarchie des modèles concernant la taxonomie:

Donc, taxonomy-post_format-{$slug}.php (par exemple taxonomy-post_format-post-format-quote.php) est le premier modèle que wp recherche.

Après ce taxonomy-post_format.php (il est inclus dans le thème vingt-treize), puis taxonomy.php, archive.php et index.php.

En outre, y a-t-il un moyen de savoir si la page chargée est une page d'archive de formats post?

Encore une fois, c'est une taxonomie. Donc, is_tax() ou is_tax('post_format') et is_tax('post_format', 'post-format-quote') fonctionneront tous.

Je parie que maintenant vous demandezquelle est l'URL qui demande post format archives?

Je dois dire que quand aucun joli lien permanent n'est activé, le lien est quelque chose comme http://example.com/?post_format=quote (http://example.com/?post_format=post-format-quote fonctionnera également).

Avec de jolis permaliens activés, il s’agit par défaut de quelque chose comme: http://example.com/type/quote. (http://example.com/type/post-format-quote/ fonctionnera également)

Notez que l'url http://example.com/type/ (sans type donné) entraînera une erreur 404.

J'ai dit 'par défaut' car la base de réécriture ' type ' pour le format de publication peut être modifiée via le filtre post_format_rewrite_base.

Cependant, pour obtenir le lien correct vers l'archive post-format, il est possible d'utiliser la fonction get_post_format_link .

2
gmazzap