Une question WPSE connexe demande comment obtenir le terme en spécifiant uniquement l'ID, sans spécifier la taxonomie. Ma question est plus philosophique. Généralement, les choses dans WP core sont là pour une raison. J'essaie de comprendre pourquoi term_id ne peut pas être la clé primaire du terme - pourquoi avons-nous également besoin de la taxonomie? Un enregistrement à terme unique peut-il être membre de plusieurs taxonomies? Ce n'est certainement pas actuellement pris en charge dans l'API. Existe-t-il un cas d'utilisation où cela pourrait être souhaitable?
Ou le $taxonomy
paramètre requis dans get_term()
une queue résiduelle provient d'une incarnation antérieure de la structure de la base de données?
wp_term_taxonomy
table est utilisé comme index pour cette table, ce qui rend la requête plus rapide (même si ce n'est qu'un terme).EXPLAIN
ditterm_id
.Réponses:
J'ai enregistré un ticket contre cela avec trac: http://core.trac.wordpress.org/ticket/20536
Cependant, il s'avère que pour le moment c'est nécessaire, car WordPress actuellement (depuis 2.x) a un bug qui associe deux termes avec le même nom au même term_id! Il est donc possible (quoique incorrect) qu'un seul terme soit associé à plusieurs taxonomies. Voir ce bogue: http://core.trac.wordpress.org/ticket/5809
Il est assez étendu, donc la mise en œuvre du correctif devra être testée de manière très approfondie. Je vais essayer de me souvenir de mettre à jour cette question s'il y a des développements.
la source
Non. Les termes sont limités pour prendre en charge les archives de termes. Et avoir les limaces deux fois fait apparaître beaucoup de minetraps ou de «wontfix» dans certains scénarios de permalien.
Oui: Imaginez que vous avez termes pour par exemple
size
et ont trois taxonomies nomméslength
,width
etheight
(vous pouvez aussi penser à des couleurs). Mais ce n'est pas pris en charge pour les raisons décrites ci-dessus.De regarder la table et d'exécuter un
EXPLAIN
,term_id
est la clé primaire. Je suppose que sur des systèmes plus grands, il pourrait être plus rapide de ne rechercher que des termes spécifiques à la taxonomie en utilisant une jointure (lente) que de tout interroger, de les trier et de filtrer ce dont vous avez besoin.la source