Récupérer l’identifiant d’une catégorie par son nom ! (Créer un compte)

  • Statut : non résolu
10 sujets de 1 à 10 (sur un total de 10)
  • Auteur
    Messages
  • #459466
    Difre
    Participant
    Initié WordPress
    20 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 2.5
    – Thème utilisé : thème perso
    – Plugins en place : pageNavi, limit post automatically
    – Nom de l’hebergeur : hebergeur d’entreprise
    – Adresse du site : Non communiquée

    Problème(s) rencontré(s) :

    En fait, je voudrais récupérer l’identifiant d’une catégorie en fonction de son nom. J’ai cherché un peu partout sur le net, mais la seule solution apportée est de faire ça à la main.

    JE cherche donc une fonction, ou un attribut d’objet à utiliser pour récupérer l’identifiant d’une catégorie à partir de son nom.

    Du genre :

    get_category_ID(« MaCategory »);

    EDIT : Bon, j’ai un peu cherché en attendant, et j’ai trouvé un plugin qui permettrai de faire ça : « Custom Query String ».

    Le problème est que je n’ai pas l’impression qu’il s’installe correctement, et donc je n’ai pas accès à ses fonctions. J’aimerais savoir si quelqu’un l’utilise et s’il arrive à le faire fonctionner.

    #629891
    Difre
    Participant
    Initié WordPress
    20 contributions

    Je me permet ce petit up.

    Je suis sur que c’est possible de récupérer l’identifiant d’une catégorie par son nom !!!

    #629892
    Comme une image
    Participant
    Maître WordPress
    2493 contributions

    Si l’extension que tu as trouvé ne fonctionne pas, tu peux au moins regarder son code, ça te donnera p-ê des idées.
    Sinon, as-tu vérifié dans le codex ? Il y a la fonction get_the_category() qui offre pas mal de possibilités, mais qui doit s’utiliser à l’intérieur de la boucle.

    Précise le contexte dans lequel tu as besoin de cette fonction, on trouvera peut-être une méthode détournée pour obtenir le résultat que tu souhaites.

    #629893
    Difre
    Participant
    Initié WordPress
    20 contributions

    Bon, ce que je veux faire c’est associer une image à une catégorie, et rien de plus !

    Je sais qu’il existe des plugins qui le font, mais moi je veux juste un truc simple, une catégorie, un lien d’image.

    Pour l’instant, j’utilise le CSS pour afficher les images, plus précisément du CSS dynamique (ex : monstyle-css.php).

    Le problème qui s’est posé, c’est un problème de portabilité. En effet, pour relier une image à une catégorie en CSS, il faut l’identifiant de la catégorie. Hors, d’un blog à l’autre, une même catégorie n’aura pas forcément le même identifiant.

    Donc pour être le plus pratique et le plus sémantique possible, j’ai créer un fichier de définition ou je fait :

    // Je relie un nom à son identifiant
    define(« NOM_DE_LA_CATEGORIE », $numCategory);

    Ainsi, quand je change de plateforme d’hébergement, il me « suffit » de modifier ce fichier de configuration pour que les images restent reliées au bonnes catégories.

    Maintenant, je préférerais pouvoir récupérer ces identifiant automatiquement en fonction du nom de la catégorie.
    D’où ma question de départ !

    Après, le mieux ce serais de développer un plugin simple permettant de relier une image à une catégorie avec interface d’admin simple, mais je ne sais pas si j’ai le temps ni la motivation.

    #629894
    Comme une image
    Participant
    Maître WordPress
    2493 contributions

    Ma suggestion : t’inspirer de ce que fait le template sandbox en terme de marquage sémantique.

    Hum… non, à la réflexion, je ne sais pas si ça correspond à ton besoin. En gros, tu voudrais utiliser le même thème + même css pour des blogs différents.

    Si tu as moyen de maîtriser ça, tu pourrais aussi t’arranger pour aligner les catégories et leurs identifiants, à grands coups de requête SQL.

    Imaginons que tu veuilles aligner :
    blog 1 : cat1 = toto, cat2=tutu, cat3=titi avec
    blog 2 : cat1 = toto, cat2=titi, cat3=tutu

    Il faut donc juste intervertir cat2 et cat3 sur blog2.

    => UPDATE billets SET catégorie = 999 WHERE catégorie = 2 (on passe par une catégorie tampon)
    => UPDATE billets SET catégorie = 2 WHERE catégorie = 3
    => UPDATE billets SET catégorie = 3 WHERE catégorie = 999

    Ensuite, il ne reste plus qu’à renommer tes catégories (proprement, via l’administration, ça sera plus simple)

    #629895
    Difre
    Participant
    Initié WordPress
    20 contributions

    Bon, ce n’est pas exactement la situation ^^

    Déjà, il ne s’agit pas de différents blogs, mais d’environnement de travail différents (ce qui revient au même en pratique !).

    Pour ton idée de SQL, ce qui correspondrait plus à mon idée ce serait :

    UPDATE billets SET catégorie = 1 WHERE nomCatégorie = ‘Chat’
    UPDATE billets SET catégorie = 2 WHERE nomCatégorie = ‘Chien’
    UPDATE billets SET catégorie = 3 WHERE nomCatégorie = ‘Chinois’

    Ce la forcerait une catégorie à avoir un numéro propre.

    Mais bon, au final il n’y a rien d’automatique au d’instinctif non plus.
    Le problème, c’est que l’application ne m’appartient pas, et s’il doit y avoir de la maintenance, ce sera plus pratique à faire par un novice !

    Merci pour toute ton aide ! On peut continuer a réfléchir dessus, mais je n’ai plus trop de temps à y consacrer donc je laisse les choses en état !

    Un fichier de conf ça passe encore !!

    #629896
    elokaze
    Participant
    Initié WordPress
    31 contributions

    il y a la fonction get_category_by_slug(‘nom_catégorie’);
    Tu peux donc faire ceci :
    $category_to_display = get_category_by_slug(‘un_nom’);

    Tu obtiens ainsi le numéro de la catégorie dans :
    $category_to_display->term_id

    Tu as en fait toutes les info de la catégorie dans le tableau remonté. tu devrais avoir ce qui te faut dedans.

    #629897
    Difre
    Participant
    Initié WordPress
    20 contributions

    OK merci beaucoup elokaze, c’est exactement ce que je cherchais !!!

    Je vais tester ça le plus tôt possible et revenir dire si ça marche !!!

    EDIT : bon, en voulant tester ta solution, j’ai voulu créer une fonction get_cat_id ! Et là, conflit, j’ai trouver la même fonction déjà implémentée dans WordPress -> wp-includes/category.php !!

    Normalement, je devrais être content, mais mon fichier (fichier utilisé pour générer du CSS) étant appelé avant l’inclusion de ces fichier, il ne peut pas bénéficier de ces fonctions (pas non plus get_category_by_slug) :(

    #629890
    pechpiouchou
    Membre
    Initié WordPress
    10 contributions

    as-tu essayé un

    include_once(‘wp-includes/category.php’)

    au début de ton fichier css/php?

    #629898
    Difre
    Participant
    Initié WordPress
    20 contributions

    Oui oui, j’ai essayé !!

    Mais category.php appèle encore un autre fichier, et cet autre fichier encore un !!

    J’était bon pour tout inclure dans mon fichier, donc je me suis arrêté là !!

    Surtout en sachant que ces fichiers devaient être appelé après par le moteur de wordpress.

    Peut-être un jour je ferais ça !! Mais cela ne me parait pas très propre !!

10 sujets de 1 à 10 (sur un total de 10)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.