web-dev-qa-db-fra.com

get_template_part pour le contenu de type message personnalisé ne fonctionne pas

J'ai un type de message personnalisé de Textorial avec les fichiers de modèle nécessaires:

  1. textorial-type.php
  2. single-textorial.php
  3. content-textorial.php

L'idée est de disposer d'une mise en page personnalisée pour le type de publication et d'utiliser un défilement infini pour les insérer. C'est pourquoi j'utilise content.php. J'ai mis en place le parchemin infini et testé avec succès avec des publications régulières. Mais lorsque vous tirez un message personnalisé, tapez sur index.php:

<div id="content">
<?php 
    while (have_posts()) : the_post();
        get_template_part( 'content', 'textorial' );                    
    endwhile;   
?>
</div>

... rien ne se présente. Aussi pas d'erreurs. Mais single-textorial.php utilise la même méthode et son contenu s'affiche. Des idées?

Mettre à jour!

sur front-page.php:

<?php $args = array('post_type' => 'textorial');
                $query = new WP_Query( $args );
                while (have_posts() ) : the_post();
                    get_template_part( 'content', 'textorial' );
                endwhile; 
              ?>

Mais maintenant, seuls les messages réguliers apparaissent.

1
Laniakea

Votre code pose quelques problèmes.

  • Vous devez définir votre boucle sur votre requête personnalisée. En l'état, il est défini sur la requête principale

  • Vous devez toujours réinitialiser les données postales avec toutes les instances de WP_Query

Votre code devrait être quelque chose comme ça

<?php $args = array('post_type' => 'textorial');
$query = new WP_Query( $args );
while ($query->have_posts() ) : $query->the_post();

    get_template_part( 'content', 'textorial' );

endwhile; 
wp_reset_postdata(); ?>
5
Pieter Goosen