Photo credits: Galileo Photos  

Je vais vous expliquer comment utiliser la fonction get_page. Ce principe consiste à créer une variable qui indiquera à wordpress d’intégrer le contenu d’une page grâce à son ID.

A quoi va me servir concrètement cette fonction ?

Cette fonction permet d’afficher un contenu que j’ai rédiger dans une page et de le placer où je veux. Si vous faites par exemple un site pour le compte d’un client, la personne qui utilisera le site ne connait pas forcément les langages html css et php. Ainsi, si le client souhaite changer de texte il devra seulement éditer la page et sa nouvelle contribution sera mise à l’emplacement sans avoir à toucher au html, css et php.


Important: Attention à ne pas confondre un article qui est géré dans le fichier single.php et une page statique (page.php)

La fonction est la suivante:

  1.  
  2. <?php
  3. $n = 2;
  4. $p = get_page($n);
  5. echo  $p ->post_content;
  6. ?>
  7.  




Explication:

La valeur de $n (2) est le numero id de la page. En effet lorsque je crée une page statique un ID lui est attribué.

Comment savoir l’ ID de la page que je souhaite voir afficher ?

Pour connaître cet ID rendez-vous dans votre panneau d’administration, plus précisément dans l’onglet « Pages ». Vous pourrez donc voir toute la liste des pages que vous avez crée et en pointant la souris sur le titre d’une page vous apercevrez alors dans la barre inférieur de votre navigateur l’ url de cette page avec un numéro sous la forme « action=edit&post=10. Le numéro 10 dans l’exemple est donc l’id de la page.

Vous pouvez également trouver le numéro en regardant le permalien qui se trouve juste en dessous du titre lorsque vous modifier votre page mais si vous réécrivez les URL pour mieux référencer la page alors le numéro n’apparaîtra pas. Avec la méthode expliquée ci-dessus vous êtes sûr de trouver l’ID.

Ou placer cette fonction?

Cette fonction peut-être placée dans un des mes fichiers de thème. Par exemple dans mon footer.php je veux faire apparaître les mentions légales en bas de page, je vais donc créer mon code html avec les balises div en prenant le soin de créer une class pour définir ses paramètres dans le fichier style.css.

Par exemple dans footer.php


  1.  
  2. <div class="text_footer">
  3. <?php
  4. $n = 2;
  5. $p = get_page($n);
  6. echo  $p->post_content;
  7. ?>
  8. </div>
  9.  




Dans style.css

  1.  
  2. .text_footer {
  3. width:200px;
  4. height:200px;
  5. }
  6.  



Maintenant sur toutes les pages où j’ai appelé le fichier footer.php je pourrais voir le texte que j’ai tapé dans la page ayant comme ID=2


Il y a un second mode d’utilisation, je peux inclure cette fonction php à l’intérieur de ma propre page de rédaction. Cependant par défaut (version 2.7) wordpress n’interprète pas les balises php dans l’éditeur de texte.
Pas de problème puisqu’ un plugin spécial a été crée pour que wordpress interprète le php dans cette situation. Il s’agit du plugin Exec Php écrit par Sören Weber. Vous pourrez donc le télécharger ici
Le procédé quant à lui reste le même, j’insère directement la fonction php dans ma page de rédaction.


Si vous avez des problèmes laissez-moi un commentaire.




Écrit par Aurélien le 22 juin 2009


22 commentaires »

  1. Sébastien

    Bonjour,
    Merci pour l’info.
    Cependant le texte ne s’affiche pas correctement s’il y a des saut de ligne…
    Auriez vous une piste ?
    Merci.

    Commentaire par Sébastien — 10 novembre 2009 @ 19 h 03 min

  2. Aurélien

    Bonsoir Sébastien,

    Quand vous rédigez vos articles êtes-vous en mode visuel ou html?Le mieux c’est d’être en mode html et d’appliquer une balise au texte avec une classe(div ou p comme dans l exemple ci-dessus)puis de la définir grâce au css. J espère avoir cerner votre problème et si ce n’est pas le cas donnez moi l’url de cette page et je vous aiderai plus amplement.

    Aurélien

    Commentaire par Aurélien — 10 novembre 2009 @ 22 h 09 min

  3. FX

    Est-il possible de gérer la fonction langue de zd multiligue ? si oui comment faire

    Commentaire par FX — 5 janvier 2010 @ 12 h 27 min

  4. Aurélien

    Bonjour FX

    Pourrais-tu m’expliquer plus amplement ton problème avec zd multilingue? En ce qui concerne les plugins de langues je les ai tous essayé et je te conseille d utiliser le plugin WPML Multilingual CMS qui est vraiment très puissant. Avec ce plugin tu peux traduire tous tes posts et pages, tu peux également choisir l’url par exemple http://www.monsite.fr/en . Sur chaque traduction tu peux optimiser le référencement. Dans ce plugin est également intégrer la navigation cms navagation ce qui peut te permettre de gérer un menu drop down. Si tu veux voir un exemple tu peux aller voir un site que j ai réalisé: http://interno.busnet.it:84/scuolafattoria/

    Tiens moi au courant

    Aurélien

    Commentaire par Aurélien — 5 janvier 2010 @ 15 h 07 min

  5. Alexandre

    bonjour,

    Votre publication est très interessante. Mais débutant dans wordpress, j’aimerais l’utiliser seulement pour editer le texte contenu dans un footer, ou une charte d’utilisation etc.. et non en tant que blog, plus comme CMS.

    cependant, wordpress est installer a l’emplacement : monsite.com/blog/.
    la page footer (ou charte.php) est a l’emplacement monsite.com/

    or depuis l’arborescence du footer je n’ai pas accés au fonctionnnalité de wordpress, n’ya t’il pas un fichier de configuration a inserer ds le footer pour indiquer ou prendre la méthode « post_content »

    Commentaire par Alexandre — 16 avril 2010 @ 16 h 20 min

  6. Aurélien

    Salut Alexandre,

    Si j’ai bien compris tu souhaiterais utiliser cette fonction dans la root de ton site, de façon à ce que tu puisses éditer le contenu? Ton blog se trouve dans le dossier blog. Donc ton site n’est pas en wordpress (wordpress est seulement dans la partie blog). Si tu souhaites utiliser wordpress pour éditer une page qui « n’appartient » pas à wordpress, ça va être difficile mais pas impossible.

    Comme alternative tu peux créer ce contenu dans wordpress. Dans ta page charte.php, tu peux faire une query sur la base de donnée de wordpress qui appelle l’id de cette page.
    Ainsi le contenu de cette serait imprimé dans cette page.

    Si tu as besoin de plus d’info sur comment faire cette query, je pourrais te filer le code php.

    Bon week-end

    Commentaire par Aurélien — 17 avril 2010 @ 19 h 52 min

  7. yannick

    bonjour je désirerais savoir comment pour faire pour inserer un poste de la même manière que décrite ci-dessus mais afficher seulement le résumé !

    merci d’avance

    Commentaire par yannick — 9 juin 2010 @ 3 h 30 min

  8. Aurélien

    Bonjour Yannick,

    La manière décrite est faite pour les pages statiques.
    Pour les post ca fonctionne également mais tu dois mettre le code suivant :

    Pour afficher tout le contenu d’ un post:
    < ?php
    $n = 7;
    $p = get_post($n);
    echo $p->post_content;
    ?>

    Pour afficher seulement le résumé:

    < ?php
    $n = 7;
    $p = get_post($n);
    echo $p->post_excerpt;

    ?>

    Je ne sais pas vraiment ce que tu veux en faire mais saches qu on peut également recréer le loop de wordpress dans une page statique par l intermédiaire d’ un template et afficher le résumé de tous les articles en sélectionnant les posts d une categorie ou voir meme sélectionner certains articles.

    Bonne journée

    Commentaire par Aurélien — 10 juin 2010 @ 10 h 56 min

  9. SG

    Bonjour,
    Tout d’abord merci pour votre astuce qui fonctionne parfaitement, cependant comment faire si la page à inclure comporte du php grâce à l’utilisation du plug-in exec-php, car le code n’est pas interprété et s’affiche comme du texte dans mon include, alors que tout fonctionne bien sur ma page…
    Merci d’avance pour votre réponse, Bonne soirée

    Commentaire par SG — 30 juin 2010 @ 16 h 53 min

  10. Aurélien

    Salut SG,

    Si la page à inclure comporte du php, le php n’est pas interprété. Cependant il existe d’autres solutions. Sur la page dans laquelle tu veux inclure une autre page tu peux y attacher un template. A l’interieur de ce template tu inclue la fonction pour voir le contenu. Si tu as besoins d’aide, dis le moi.

    Bonne journée

    Commentaire par Aurélien — 1 juillet 2010 @ 11 h 30 min

  11. Alecsy

    Merci pour ce tuyau bien pratique :)

    Commentaire par Alecsy — 16 juillet 2010 @ 14 h 38 min

  12. mordikkuss

    Hello,

    en effet, très pratique comme astuce, j’adore ;)

    Par contre, j’essaie d’insérer une galerie photo faite avec nextGen Gallery, mais impossible… (la page fonctionne bien elle)

    J’ai l’impression que le problème est le même que SG et du coup, je n’est pas bien saisi ton astuce pour y remédier…

    Commentaire par mordikkuss — 23 août 2010 @ 3 h 18 min

  13. Aurélien

    Salut Mordikkuss,

    Quand tu parles de pages tu veux dire une page wordpress dans le panneau d’admin ?

    Si oui, as tu mis dans ta page le bon code avec le bon id pour appeler ta gallerie ? (du type: [ nggallery id=x ]) ?

    Tiens moi au courant

    Commentaire par Aurélien — 23 août 2010 @ 20 h 55 min

  14. mordikkuss

    Re,

    en effet, pas très clair mon explication (3h18 du mat ;)

    En fait j’avais créé une page statique où j’avais inséré une galerie nextGen. En front-end, la galerie s’affichait correctement lors de l’appel de cette page, via le menu principal…

    Moi, je voulais afficher cette page (contenant la galerie), comme tu le décrivais plus haut, mais ça ne fonctionnait pas. A l’affichage, j’avais ça : [ nggallery id=x ], c’était interprété comme du texte, et oui ;)

    Finalement, j’ai trouvé une solution, via un forum, pour afficher une galerie photo dans n’importe quel template php :

    mon problème est alors réglé. voilou ;)

    Si tu as une autre solution, ça m’intéresse aussi. Merci dans tous les cas.

    Commentaire par mordikkuss — 24 août 2010 @ 0 h 02 min

  15. mordikkuss

    ReReee,

    je recommence, vu que mon explication a été tronqué :
    …pour afficher une galerie photo dans n’importe quel template php : echo do_shortcode(’[nggallery id=4]‘);

    Voilou.

    Commentaire par mordikkuss — 24 août 2010 @ 0 h 05 min

  16. Cédric

    Bonjour, Merci beaucoup pour cette astuce génial ^^.
    J’ai tout fois une question, j’aimerais mettre le plan de mon site dans mon footer grâce au pluing PS Auto Sitemap v1.1.3
    1/- Je crée une page plan du site dans Wordpress 3.0.1
    2/- Dans la partie HTML (code) de la page plan du site ajoute :
    test plan site

    Pour que le pluing PS Auto Sitemap soit activer dans cette page.

    3/- J’applique la méthode vue dans votre site dans mon footer :

    post_content;
    ?>

    Le résulta est que je vois apparaître « test plan site » mais pas mon plan du site.

    Quand je vais voir URL de la page tout est présent « test plan site » et plan du site.
    Quelqu’un aurais une idée pour corrige ce problème.

    Je vous remercie d’avance.

    Commentaire par Cédric — 16 octobre 2010 @ 13 h 06 min

  17. ILP

    Bonjour,
    C’est exactement ce que je cherchais. Merci beaucoup.
    J’arrive à l’utiliser pour des posts ou des page.
    Par contre j’aimerais pouvoir faire la même chose pour intégrer une catégorie dans la page de présentation de la-dite catégorie et là ça ne fonctionne pas en remplaçant « get_page » par « get_category » ou get_ »term ».
    Y a-t-il une astuce ?

    Commentaire par ILP — 15 novembre 2010 @ 14 h 28 min

  18. Aurélien

    Bonsoir ILP,

    Si tu veux intégrer une catégorie, tu dois créer un template, puis créer une nouvelle page en la rattachant à celui-ci. Ensuite tu vas utiliser la fonction query post dans le template qui se place juste avant le if (have_posts()).

    La fonction est la suivante :

    < ?php
    query_posts('cat=503');
    ?>
    Ici 503 est l’id de la catégorie qui va s’imprimer.

    Bon courage

    Commentaire par Aurélien — 15 novembre 2010 @ 19 h 50 min

  19. Achel Jay

    Extrêmement puissant ce bout de code, en revanche cela fait deux jours que je cherche à le faire fonctionner avec wpml. Sur un site quej e suis en train de créer je place le contenu de certaines pages dans des div de ma homepage et fait appel à ce contenu via le code que vous nous offrez. En revanche, comme ce site est multilingue, quand je passe anglais, le contenu n’est pas traduit … auriez vous une idée ? sur le site de wpml ils disent de placer une fonction dans le functions.php du thème mais y’a aucun exemple pour du contenu de page dans une autre page :p

    Merci d’avance

    Commentaire par Achel Jay — 22 février 2011 @ 18 h 47 min

  20. Aurélien

    Salut Achel Jay,

    la page que tu appelles a t elle sa propre traduction ?
    Sincèrement je n ai aucune idée…

    Commentaire par Aurélien — 22 février 2011 @ 20 h 05 min

  21. zizaflam

    c bon

    Commentaire par zizaflam — 30 août 2011 @ 5 h 46 min

  22. Fabrice

    Bonjour Aurélien,

    Et tout d’abord merci de mettre à notre disposition tes connaissances.

    Pour ma part, je suis tout débutant et j’avoue que toucher aux codes me fait toujours un peu peur. Mais là je me sens un peu rassuré. Je dois en effet mettre les mentions légales dans le pied de page.

    Par contre avant d’y toucher, j’aurai une question.

    Quand tu dis de mettre les codes php et css que tu donnes dans footer php, veux tu dire qu’on va dans « Apparence » – « Editeur » puis à droite sur « Pied de page » (Footer.php) et là inclure les codes dans la page qui s’affiche ?

    Si oui, peux tu me dire où exactement mettre les codes dans la page. Car elle est bien sûr pleine de codes que je ne saurai déchiffrer.

    Et enfin, dans le code div, le chiffre 2 de ton code correspond il à l’ID de la page (si j’ai bien compris) ?

    Pour le reste c’est vraiment très clair et très détaillé bravo.

    Merci pour ton aide.

    Cordialement

    Fabrice

    Commentaire par Fabrice — 20 novembre 2011 @ 6 h 56 min

Flux RSS des commentaires de cet article. Adresse web de rétrolien

Laisser un commentaire



Mini-Guide

Le guide du référencement

trafic

Ce guide vous permettra de comprendre et donc d'optimiser le référencement de votre site

Lire la suite

WP: Appliquer le contenu d une page

wp

Cette fonction permet d afficher un contenu que j ai rédiger dans une page et de le placer où je veux.

Lire la suite

Optimisez votre page web

optimiser

Quelles sont les balises Html importantes prises en compte par les moteurs de recherche

Lire la suite