Dernièrement, j'ai été amenée à chercher une solution pour afficher le contenu d'une page statique sur la page d'accueil d'un site Wordpress. J'aurais pu utiliser un widget pour que mon client puisse afficher son texte sur la page d'accueil, mais cela aurait créé un doublon, puisque ce texte devait être identique à celui de la page statique... Autant faciliter la vie de tout le monde et ne devoir mettre à jour qu'une seule page. C'est là qu'interviennent les requêtes (query).

Cet article a été publié il y a plus d'un an. Les informations qu'il contient ne sont peut-être plus pertinentes à l'heure actuelle.

Trouver l’ID de la page à afficher

La première étape est donc de récupérer l’ID de la page à afficher. Pour cela, rendez-vous dans le menu « Pages » de WordPress et survolez la page que vous souhaitez afficher. L’ID de celle-ci s’affiche en pied de page (Cf. image).

Création de la requête & affichage du résultat

Seconde étape, éditer le fichier index.php (ou le template de votre page d’accueil, c’est selon). D’abord, il faut spécifier l’ID de la page à afficher et récupérer son contenu : dans mon cas, cette ID est 20.

<?php $post_id =20; $queried_post = get_post($post_id); $content = $queried_post->post_content; ?>

Ensuite, il vous suffit d’afficher votre contenu comme d’habitude :

<?php echo $content; ?>

 

Et si je ne souhaite pas afficher les images ?

Si vous souhaitez n’afficher que le texte de votre page, il faut modifier votre requête, en utilisant la fonction preg_replace, qui permet de rechercher & remplacer du contenu. Ici, je recherche les balises image, et les remplace par une espace.

 <?php $post_id =20; $queried_post = get_post($post_id); $content = $queried_post->post_content; $content = preg_replace("/<img[^>]+\>/i", "", $content); ?>

8 commentaires

  1. Bonjour,

    Super j’étais justement entrain de chercher une solution à un problème similaire et pour lequel cela ne fonctionne pas 🙁

    Comment peut-on intégrer une page qui a des shortcode pour avoir un bon rendu HTML ??

    Merci d’avance

    1. Bonjour,

      Pour les shortcodes, je n’ai pas encore trouvé la solution pour les afficher correctement. J’ai pour le moment pris le parti de ne pas les afficher avec le même procédé (preg_replace), mais si je trouve un moyen pour qu’ils s’affichent correctement, je ferai un post à ce sujet !

  2. Une autre méthode concerne la fonction « Static Front Page » proposée par WP. Cf.http://codex.wordpress.org/Creating_a_Static_Front_Page

    1. Merci ^^ Je n’avais même pas pensé à la solution du codex… Comme quoi on cherche parfois des explications compliquées pour rien !

  3. Salut Myléne,

    Tu peut utiliser la fonction wordpress « do_shortcode( $content ) »

    Cela va extraire et filtré la partie « Shortcode » du post.

    Ne me remercie pas ^^ Remercie WordPress ^^

    A++

    1. Merci ^^ Au final j’avais été poser ma question sur le forum de support WP, mais je vais garder ta soluce dans un coin pour la prochaine fois !

  4. Merci beaucoup pour cette explication très claire. Elle m’a permis de faire enfin ce que je voulais.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec une astérisque: *.