Récupérer l’ID d’un post ou d’une page sous WordPress

Vous utilisez peut-être WordPress pour publier votre blog.

Vous avez commencé à modifier un thème pour l’adapter à vos besoins/goûts/envies mais une variable vous résiste : la variable qui permet d’afficher un post grâce à un numéro unique l’identifiant (ID).

Par défaut, cet identifiant est disponible uniquement à l’intérieur de la boucle (The Loop) de WordPress :

/* on affiche le numéro de post/page dans la boucle WordPress */
the_ID();Code language: JavaScript (javascript)

Tant que vous vous trouvez dans la boucle, aucun souci.

Par contre, si vous souhaitez écrire votre propre plugin ou utiliser cette variable dans votre sidebar, vous êtes un peu coincé car the_ID() n’est alors plus une fonction valide.

Pour remédier à ce problème, vous pouvez utiliser la variable $post->ID afin de retourner le numéro du post ou de la page.

Jettez un oeil au code suivant :

/* on fait de $post une variable globale */
global $post;

/* on stocke la variable dans un nom de variable inutilisé */
$sky_post_ID = $post->ID;

/* on affiche cette variable */
echo $sky_post_ID;Code language: PHP (php)

Alternative, en effectuant une requête SQL simplifiée par $wp_query.

Cette méthode est utilisée principalement hors de la boucle, en travaillant directement sur la base de données :

/* on fait de $wp_query une variable globale */
global $wp_query;

/* on stocke la variable dans un nom de variable inutilisé */
$sky_post_ID = $wp_query->post->ID;

/* on echo cette variable */
echo $sky_post_ID;Code language: PHP (php)

Voilà, vous devriez maintenant pouvoir accéder à ces fameux post id et page id.

Happy coding :)

Rencontrez-vous des défis avec votre site WordPress ou WooCommerce? Laissez-moi les résoudre pour vous.

Discutons des solutions possibles »

Articles conseillés :

Matt

Matt Biscay est développeur WordPress et WooCommerce certifié chez Codeable, ainsi que sysadmin qualifié et enseignant-chercheur. Passionné par le code performant et les solutions sécurisées, je m'efforce d'offrir une expérience utilisateur exceptionnelle sur chaque projet.

Vous avez aimé cet article ? Vous avez un projet en tête et vous pensez que je pourrais vous aider à le concrétiser ? N'hésitez pas à me contacter, je serais ravi de discuter avec vous de votre projet !

6 pensées sur “Récupérer l’ID d’un post ou d’une page sous WordPress”

  1. Bonjour! Merci pour cet article.

    Cependant, sais-tu comment récupérer l’ID d’une catégorie en dehors de la Boucle, avec $wp_query? (et aussi l’ID des pages, tant qu’on y est :-D)

    Je cherche une solution depuis des jours sans succès… D’avance merci pour ton aide!

    Reply
  2. Salut kReEsTaL,

    Voici comment récupérer l’ID d’une catégorie :

    
    /* Pour récupérer l'ID de la catégorie d'un post ; */
    $category = get_the_category(); 
    echo $category[0]->cat_ID;

    Le problème avec ce premier bout de code est que l’on récupère uniquement l’ID de la première catégorie d’un post.

    Si l’article est classé dans plusieurs catégories, il faut créer une boucle :

    /* Pour récupérer toutes les ID de catégories d'un post ; */
    foreach((get_the_category()) as $category) { 
        echo $category->cat_ID; 
    } 

    A titre indicatif, voici les autres variables concernant les catégories :

    cat_ID : ID de catégorie.
    cat_name : nom de la catégorie.
    category_nicename : le slug automatique généré pour la catégorie.
    category_description : la description de la catégorie
    category_parent : l’ID de la catégorie parente. Sera égal à 0 s’il n’y en a pas.
    category_count : le nombre d’occurences de cette catégorie.

    Les pages sont considérées comme des posts : la méthode fonctionne pour les deux.

    Reply
  3. Ah enfin j’essaye de supprimer les pubs qui sont dans une de mes catégories et je ne pouvais pas récupérer son id

    merci beaucoup pour ce code

    Reply

Opinions