web-dev-qa-db-fra.com

Page d'accueil statique de la page ne montrant pas le contenu

Je dois faire quelque chose de mal ici.

J'ai configuré mon site avec une page de garde statique à l'aide de front-page.php. J'ai créé une page dans l'admin avec un titre et j'ai choisi le fichier front-page.php dans la liste déroulante des modèles.

Mon titre apparaît bien, cependant the_content (); ne fait pas.

Je ne fais rien de spécial comme indiqué ci-dessous.

<?php
/*
Template Name: Homepage
*/ ?>
<?php get_header(); ?>
<div class="content">
<div class="welcome_area">
<div class="welcome_area_title"><?php the_title('');?></div>
<div class="welcome_area_text">
<?php the_content(); ?>
</div>

Des idées pour lesquelles le contenu ne s'affiche pas?

3
dragonfeet2012

Vous n'avez pas vraiment de boucle.

<?php get_header(); ?>
<div class="content">
<div class="welcome_area">
<div class="welcome_area_title"><?php the_title('');?></div>
<div class="welcome_area_text"><?php 
if (have_posts()) {
  while (have_posts()) {
    the_post();
    the_content(); 
  }
} ?>

Ce qui se passe c'est:

  1. Vous utilisez have_posts() pour vérifier que vous avez publié du contenu. Vous pouvez utiliser une clause else pour fournir du contenu par défaut si vous le souhaitez.
  2. Vous parcourez ce contenu en utilisant while(have_posts())
  3. Vous exécutez the_post() pour configurer la variable $post et également pour incrémenter le compteur de boucles. Essayez cela sans the_post() et vous obtenez une boucle infinie. C'est la partie la plus critique qui manquait dans votre code.
  4. Maintenant que the_post() a été exécuté, les balises post-template devraient fonctionner comme prévu.

Je n'ai pas modifié votre code de manière trop radicale, mais je ferais aussi figurer ce the_title dans la boucle, même s'il semble fonctionner. C'est vraiment devrait être à l'intérieur de la boucle et cela ne fonctionne pas toujours comme prévu en dehors de celle-ci.

Référence

https://codex.wordpress.org/Class_Reference/WP_Query#Methods

9
s_ha_dum

Tout d’abord, si vous définissez votre page comme page de couverture statique, vous n'avez pas besoin d'associer le modèle à la page, et le modèle n'a pas besoin d'en-tête. WordPress utilise automatiquement le modèle front-page.php pour une page de garde statique, conformément à la hiérarchie de modèles .

Pour répondre à votre question, vous devez toutefois appeler the_post() first pour configurer les vars globaux sur lesquels the_content() function s'appuie.

4
Milo