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();

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;

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;

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

Si vous avez trouvé une faute d’orthographe, veuillez nous en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée.

Articles en rapport:

6 Comments

  1. Avatar

    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

  2. Matt

    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.

  3. Avatar

    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!

Écrire un commentaire

Spelling error report

The following text will be sent to our editors: