In einer verwandten WPSE-Frage wird gefragt, wie der Begriff nur durch Angabe der ID ohne Angabe der Taxonomie ermittelt werden kann. Meine Frage ist philosophischer. Im Allgemeinen gibt es Dinge im WP-Kern aus einem bestimmten Grund. Ich versuche zu verstehen, warum term_id nicht der Primärschlüssel für den Begriff sein kann - warum brauchen wir auch die Taxonomie? Kann ein einzelner Termdatensatz Mitglied mehrerer Taxonomien sein? Das wird derzeit in der API sicherlich nicht unterstützt. Gibt es einen Anwendungsfall, in dem dies wünschenswert sein könnte?
Oder stammt der erforderliche $taxonomy
Parameter in get_term()
einem Rest aus einer früheren Inkarnation der Datenbankstruktur?
wp_term_taxonomy
Tabelle als Index für diese Tabelle verwendet wird, wodurch die Abfrage schneller wird (auch wenn es sich nur um einen Begriff handelt).EXPLAIN
sagtterm_id
.Antworten:
Ich habe ein Ticket dagegen mit trac angemeldet: http://core.trac.wordpress.org/ticket/20536
Es stellt sich jedoch heraus, dass dies vorerst notwendig ist, da WordPress derzeit (seit 2.x) einen Fehler aufweist, der zwei Begriffe mit demselben Namen derselben term_id zuordnet! Es ist also möglich (wenn auch falsch), dass ein einzelner Begriff mehr als einer Taxonomie zugeordnet wird. Siehe diesen Fehler: http://core.trac.wordpress.org/ticket/5809
Es ist ziemlich weitreichend, daher muss die Implementierung des Fixes sehr gründlich getestet werden. Ich werde versuchen, mich daran zu erinnern, diese Frage zu aktualisieren, wenn es Entwicklungen gibt.
quelle
Nein. Begriffe haben Slugs zur Unterstützung von Begriffsarchiven. Und wenn die Schnecken zweimal vorhanden sind, werden in einigen Permalink-Szenarien viele Minenfallen oder "Wontfixes" angezeigt.
Ja: Stellen Sie sich vor , dass Sie Begriffe für zB haben
size
und drei Taxonomien genannt habenlength
,width
undheight
(Sie können auch über Farben denken könnte). Dies wird jedoch aus den oben genannten Gründen nicht unterstützt.Vom Betrachten der Tabelle und Ausführen eines
EXPLAIN
,term_id
ist der Primärschlüssel. Ich denke, auf größeren Systemen ist es möglicherweise schneller, taxonomiespezifische Begriffe nur mit einem (langsamen) Join abzufragen, als alle abzufragen, zu sortieren und zu filtern, was Sie benötigen.quelle