Vous n'êtes pas identifié.
Annonce
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.
Pages: 1
- Index
- » Utilisation spécifique de WordPress
- » [Résolu] Récupération de l'ID d'une page 'dynamique'
#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:
- <ul>
- <?php $help_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title like 'Aide%'");
- wp_list_pages('title_li=&include='.$help_id); ?>
- </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) 
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
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:
- <?php $privacy_id = get_page_by_title("Confidentialité")->ID;
- wp_list_pages('title_li=&include='.$privacy_id); ?>
ne me sort rien
et le % n'y fera rien car la fonction est écrite avec un =. Je ne vais pas modifier la fonction ce serait dommage 
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")
c'est la base qui gère l'accent..
Au final tout va bien maintenant 
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 
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
- $privacy = get_page_by_title("Confidentialité"); $privacy_id = $privacy->ID;
au lieu de :
Code: PHP
- $privacy_id = get_page_by_title("Confidentialité")->ID;
Cordialement,
Thomas
P.S: Sinon, il suffit de passer à PHP 5 
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") 
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é")
... 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:
- <?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 
Hors ligne
Pages: 1
- Index
- » Utilisation spécifique de WordPress
- » [Résolu] Récupération de l'ID d'une page 'dynamique'