Bonjour
je suis en train de créer mon thème wordpress et j'ai un soucis
J'ai créé une page portfolio qui a pour template le fichier portfolio.php.
Cette page s'affiche très bien.
Néanmoins, j'ai un problème lorsque je clique sur une image. Normalement sur la page je voudrais qu'il y ai le header, le footer, une ou des images du projet et une description. Chose qui est bien entendu rempli dans chaque projet du portfolio.
Mais quand je clique sur une image, la page qui s'affiche possède juste le header et le footer. Cette page est la page index.php (je voulais créer le fichier single-portfolio.php, mais WP prend directement la page index.php mais bon c'est pas grave).
Dans mon fichier index.php, voilà ce qu'il y a :```
<?php get_header(); ?>

<div class="main single">
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="post">
<h1 class="post-title"><?php the_title(); ?></h1>
<p class="post-info">
Posté le <?php the_date(); ?> dans <?php the_category(', '); ?> par <?php the_author(); ?>.
</p>
<div class="post-content">
<?php the_content(); ?>
</div>
<div class="post-comments">
<?php comments_template(); ?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>

<?php get_footer(); ?>

</body>
</html>


Vous me direz, toute la partie PHP n'affiche pas ce que j'ai dit plus haut, mais pour l'instant ce n'est pas grave, le php ne s'affiche pas du tout sur la page...

J'ai essayé en mettant un simple paragraphe ajouté entre le header et le footer, et le paragraphe s'affiche. 
Comment ça se fait que le PHP ne fonctionne pas ? Comment résoudre ce probleme ?

Merci d'avance

6 réponses


Il faut que tu utilises une boucle entre ton header et ton footer pour afficher ton contenu

bloum
Auteur

Le code ne veut pas se copié voilà ce que j'ai entre le header et le footer, et je crois qu'il y a la boucle dont tu parles

<div class="main single">
  <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
      <div class="post">
        <h1 class="post-title"><?php the_title(); ?></h1>
        <p class="post-info">
          Posté le <?php the_date(); ?> dans <?php the_category(', '); ?> par <?php the_author(); ?>.
        </p>
        <div class="post-content">
          <?php the_content(); ?>
        </div>
        <div class="post-comments">
          <?php comments_template(); ?>
        </div>
      </div>
    <?php endwhile; ?>
  <?php endif; ?>
</div>

C'est bien cette boucle ?

Oui c'est bien ca :) du coup je sais pas trop

Bonsoir.
Tu n'aurais pas oublié de le mettre sous forme d'echo par hasard ?
Par exemple :

<?php echo the_content(); ?><!-- ou --><?= the_content() ?>

À la place de :

<?php the_content(); ?>

@Lartak Non cette fonction suffit a afficher le contenu

Si je résume, tu as un template portfolio.php et tu veux remonter tes pages dédiée par projet ?
Pourquoi ne pas créer un template de page pour tes projets et les définir comme enfants de ta page portfolio ?

Il ne te restera plus qu'à ajouter un wp_list_pages sur ta page portfolio pour lister tous les enfants de cette page en récupérant l'url, le nom, la photo etc de chaque projet.
Ainsi, sur ta page, tu auras un listing de tes projets redirigeant chacun vers sa page projet.