Annonce

Important, migration recommandée : WordPress 2.6.3 est disponible en français.À lire avant la migration !
Annonce 1 : Le Codex en français a besoin de vous pour avancer !
Annonce 2 : Avant de poster, n'oubliez pas de faire une petite Recherche et de lire les règles de ce forum.
Annonce 3 : Lisez notre blog, il regorge de bonnes informations.

#1 16-08-2008 11:16:37

itchingman
Membre WP
Date d'inscription: 16-08-2008
Messages: 6

[Résolu] Récupération de l'ID d'une page 'dynamique'

Bonjour,

Ma configuration WP actuelle
- Version de WordPress : 2.6
- Thème utilisé : Personnalisé bilingue
- Plugins en place : zdmultilang
Problème(s) rencontré(s) :

Afin d'avoir les mêmes template de thème sur ma dév et ma prod j'ai besoin de récupérer dynamiquement l'id de certaines pages créées dynamiquement via l'admin de WP. Je ne veux pas écrire l'id en dur dans le template.

Actuellement je tourne avec une technique trouvée sur un blog américain et je fais comme suit :

Code:

  1. <ul>
  2. <?php  $help_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title like 'Aide%'");
  3.                 wp_list_pages('title_li=&include='.$help_id); ?>
  4. </ul>

Cela fonctionne, mais j'ai de temps en temps des effets de bord que je ne comprend pas. Par exemple il m'a fallu supprimer et récréer par 2 fois la page "Aide" de l'exemple ci-dessus car la requête n'aboutissait pas et rien ne s'affichait.

En dehors de cela je ne trouve pas cela très  élégant comme procédé de mettre une requête SQL dans un template.

J'avoue être un peu novice en matière de code WP pour template, et j'ai beau retourné le codex dans tous les sens j'ai l'impression de passer à coté de quelque chose.

Est-ce vous auriez une idée  ?

Hors ligne

 

#2 16-08-2008 13:02:29

MS-DOS_1991
Admin
Lieu: France
Date d'inscription: 03-06-2006
Messages: 1989
Site web

Re: [Résolu] Récupération de l'ID d'une page 'dynamique'

Salut,

Tu devrais pouvoir utiliser la fonction get_page_by_title (si tes titres sont constants), ou bien get_page_by_path (si tes permalinks sont constants) wink

Cordialement,
Thomas

Hors ligne

 

#3 16-08-2008 14:10:02

itchingman
Membre WP
Date d'inscription: 16-08-2008
Messages: 6

Re: [Résolu] Récupération de l'ID d'une page 'dynamique'

Merci avec cette fonction que j'ai maintenant compris blink j'ai pu récupérer l'ID de presque toutes mes pages.

Il me reste un cap à franchir. En effet dans ma requête j'avais mis like à la place de = pour avoir un caractére "jocker" dans le cas des titres avec accents.

Par exemple :

Code:

  1. <?php $privacy_id = get_page_by_title("Confidentialité")->ID;
  2.                 wp_list_pages('title_li=&include='.$privacy_id); ?>

ne me sort rien sad et le % n'y fera rien car la fonction est écrite avec un =. Je ne vais pas modifier la fonction ce serait dommage wink

Sur ma page "A propos" j'ai enlevé l'accent sur A mais sur Confidentialité ça ferait "bof"..

Une idée ?

Fred

Hors ligne

 

#4 19-08-2008 07:52:07

itchingman
Membre WP
Date d'inscription: 16-08-2008
Messages: 6

Re: [Résolu] Récupération de l'ID d'une page 'dynamique'

Au temps pour moi, cela fonctionne avec get_page_by_title("Confidentialite") boulet c'est la base qui gère l'accent..

Au final tout va bien maintenant smile

Hors ligne

 

#5 20-08-2008 20:41:59

itchingman
Membre WP
Date d'inscription: 16-08-2008
Messages: 6

Re: [Résolu] Récupération de l'ID d'une page 'dynamique'

Argh ça  marche sur ma config local : wamp, php 5, mysql 5 mais  pas sur OVH php4 mysql 5 sad

Quelqu'un a déjà eu un problème similaire ?

Hors ligne

 

#6 20-08-2008 21:44:28

MS-DOS_1991
Admin
Lieu: France
Date d'inscription: 03-06-2006
Messages: 1989
Site web

Re: [Résolu] Récupération de l'ID d'une page 'dynamique'

Hmm, sous PHP 4, je verrais bien quelquechose comme :

Code: PHP

  1. $privacy = get_page_by_title("Confidentialité"); $privacy_id = $privacy->ID;

au lieu de :

Code: PHP

  1. $privacy_id = get_page_by_title("Confidentialité")->ID;

Cordialement,
Thomas

P.S: Sinon, il suffit de passer à PHP 5 tongue

Hors ligne

 

#7 21-08-2008 08:11:06

itchingman
Membre WP
Date d'inscription: 16-08-2008
Messages: 6

Re: [Résolu] Récupération de l'ID d'une page 'dynamique'

Nickel cela fonctionne bien avec get_page_by_title("Aide")  smile

Merci Thomas !

Bon maintenant, sur OVH j'ai le problème avec l'accent,  il ne me remonte pas ma page Confidentialité que ce soit avec get_page_by_title("Confidentialite") ou get_page_by_title("Confidentialité") sad ... je vais vérifier l'encodage de la base okzou

Hors ligne

 

#8 21-08-2008 08:50:52

itchingman
Membre WP
Date d'inscription: 16-08-2008
Messages: 6

Re: [Résolu] Récupération de l'ID d'une page 'dynamique'

Bon le character set de la base est ok. Elle répond correctement aux requêtes SQL avec ou sans accents.

Par contre pour que ma requête d'ID fonctionne j'ai du remettre ma requête "pas jolie" .

Code:

  1. <?php  $help_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title like 'Confidentialit%' and post_status='publish'");

il ne me reste plus que php5... sur OVH c'est assez soulant, il faut renommer tous les fichiers en .php5 au lieu de .php

En tout cas, encore merci à Thomas smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB 1.2.20
© Copyright 2005-2006 WordPress France