web-dev-qa-db-fra.com

Une catégorie d’enfants peut-elle avoir plus d’un parent?

Je regarde la fonction get_categories() dans le codex WordPress pour voir comment je peux renvoyer tous les enfants de chaque "parent racine" (catégories sans parents). Par exemple, si les enfants de plusieurs "parents racine" m'intéressent, j'aimerais savoir s'il y aura plus d'une instance du même enfant sous un "parent racine" différent.

Donc, cela m'amène à demander:

Les catégories d'enfants dans WordPress peuvent-elles avoir plusieurs parents différents?

4
gate_engineer

Non , un terme peut avoir beaucoup d'enfants, mais seulement un seul parent. Le champ parent de la base de données ne peut contenir qu'une seule valeur.

C'est une relation hiérarchique un à plusieurs, pas une relation plusieurs à plusieurs.

La même chose est vraie des messages. Une publication ne peut avoir qu'un seul parent mais plusieurs enfants. Pour contourner cela, vous utiliseriez des taxonomies.

Sidenote sur wp_term_taxonomy et Hard Proof

Il a été suggéré que le même terme pourrait avoir plusieurs entrées dans ce tableau, ce qui lui permettrait d'avoir plusieurs parents et d'être partagé entre plusieurs termes parents.

Voici le schéma de base de données:

enter image description here

Comme vous pouvez le voir si le même terme et la même taxonomie ont été mentionnés à plusieurs reprises, mais avec un parent différent, peut-être un terme peut-il avoir plusieurs parents?

Non , les term_id et taxonomy_id sont tous les deux unique , une telle chose ne pourrait pas être créée dans cette table sans changer son schéma. Pour démontrer cela, j'ai ouvert la suite pro.

Ici, nous avons un terme dans ma copie locale de mon blog:

enter image description here

Il a un parent de 4, essayons de lui donner un second parent de 5:

INSERT INTO `tjn2_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `description`, `parent`, `count`)
VALUES
    (13, 13, 'category', '', 5, 0);

Lorsqu'elle a été exécutée, cette requête génère l'erreur suivante:

enter image description here

Donc non, un terme ne peut pas avoir plus d'un parent. Mais même s'il le pouvait, il n'y aurait aucun mécanisme dans les API permettant de détecter des instructions SQL brutes, de sorte qu'un tel terme serait inutile et inutilisable dans les interfaces utilisateur frontend et backend

5
Tom J Nowell

Essayez de structurer vos catégories avec tax-meta-class http://fr.bainternet.info/wordpress-taxonomies-extra-fields-the-easy-way/ .

Vous pourrez ajouter des méta-champs à vos taxonomies (catégories, tags, taxe personnalisée).

0
Benoti