Lorsque je travaillais sur mon autre site (Gumdust), j’ai eu besoin de remonter les infos d’un post grâce à son URL.

Après quelques recherches, j’ai trouvé la fonction url_to_postid, mais cette dernière ne permet pas de remonter l’ID d’un Custom Post Type (CPT) grâce à son URL. Elle fonctionne seulement avec « post » et « page ».

Il a donc fallu chercher une fonction similaire, mais qui prenait en compte mes CPT.

Voici un exemple de ce que la fonction ci-dessous m’a permit de mettre en place sur Gumdust : DAT EVO X | Stance Nation.

Vous pouvez voir dans la description de la vidéo qu’il y a un petit cartouche à droite avec un titre, un lien, différentes infos et une image.

Voilà comment ça fonctionne :
– un utilisateur publie une vidéo et ajoute une description qui contient un lien pointant vers une page interne du site.
– la fonction si dessous permet de remonter un ID à partir d’un lien interne, on récupère donc un ID de post.
– on créer ensuite une fonction pour générer le cartouche et remonter les différentes infos du post grâce à son ID.
– on ajoute un filtre pour insérer ce cartouche dans the_content.
– et voilà !

Il s’agit bien évidemment d’un exemple comme un autre, mais si vous avez d’autres idées d’applications intéressantes, n’hésitez pas à les partager, et peut être qu’on pourra en faire un plugin lors d’un prochain tuto 😉

Voici donc la fonction qui permet cette « prouesse » : (j’ai fait ma feignasse, je n’ai pas traduit les commentaires…)

Puis pour utiliser cette fonction qui n’a qu’un paramètre (l’URL de la page recherchée), il vous suffit de faire ceci :

A noter, que si l’URL ne correspond à aucune page de votre site, et qu’elle ne retrouve donc aucun ID, elle retournera 0.

Cette fonction est (à priori) un peu gourmande en ressources, elle est donc à utiliser avec parcimonie (c’est qui celui là ?).

Arpès avoir rédigé cet article, j’ai à nouveau fait une petite recherche et je me suis rendu compte que la fonction url_to_postid qui existe depuis la création de WordPress (1.0.0), est désormais compatible avec les CTP… (depuis la version 3.7)

En somme, vous n’êtes pas obligé d’utiliser la fonction présentée plus haut, sauf si vous souhaiter la customiser.
Pour utiliser url_to_postid, il vous suffit de faire comme ceci :

Source: url_to_postid

Brice Capobianco

Autodidacte passionné par WordPress. J'aime apprendre et créer pour ensuite partager…
Responsable commercial en agence web, je suis également développeur freelance WordPress à Rennes.

Coorganisateur des Meetups WordPress Rennes et fondateur de b-website.com.