web-dev-qa-db-fra.com

Les formats de publication "audio" et "vidéo" ne sont affichés que dans index.php

J'ai des fichiers dans mon thème appelés single-audio.php et single video.php, mais lorsque je clique sur un post-format audio ou vidéo au format post-format, wordpress utilise le index.php au lieu de mes fichiers single-audio.php ou single-video.php. Des idées?

4
James

Il y a une énorme différence entre Formats de publication et Types de publication . Je suppose que vous utilisez des formats de publication qui ne possèdent pas de fichier de modèle par défaut.

Ce que vous pouvez faire, c’est utiliser has_post_format() pour voir si le message a le format que vous utilisez, et si tel est le cas, utilisez get_template_part() pour obtenir un fichier de modèle spécifique que vous avez créé pour y être affiché.

Par exemple:

// If this post has a post format of 'video'
if( has_post_format( 'video', $post->ID ) ) {

    // Then get and display 'single-video.php'
    get_template_part( 'single', 'video' );

}
5
Jared

Si vous voulez vraiment utiliser des fichiers uniques pour chaque type de post-format, essayez quelque chose comme ceci: (coller dans functions.php)

function post_format_template() {
global $post;
$format = get_post_format($post->ID);
if ( is_single() && $format ) {
        include('single-format-'.$format.'.php');
        exit;
    }
}
add_action('template_redirect', 'post_format_template',10);

C'est une solution possible, mais je ne le recommanderais pas, tant que vous n'êtes pas sûr à 100% de ce que vous faites. Que se passe-t-il ici.

La réponse de Jared est la méthode recommandée pour traiter les post-formats.

2
ungestaltbar

Si je comprends bien votre question, vous devrez procéder comme suit:

  1. Ajouter une nouvelle page via le tableau de bord
  2. Donnez à cette nouvelle page un nom du type "Format de publication audio" et associez cette page à un modèle. Il existe une boîte de sélection qui vous permettrait de sélectionner un modèle.

HTH

0
rexposadas