Una pregunta relacionada con WPSE pregunta cómo obtener el término especificando solo ID, sin especificar taxonomía. Mi pregunta es más filosófica. En general, las cosas en el núcleo de WP están ahí por una razón. Estoy tratando de entender por qué term_id no puede ser la clave principal del término, ¿por qué también necesitamos la taxonomía? ¿Puede un solo registro de término ser miembro de múltiples taxonomías? Eso ciertamente no es compatible actualmente con la API. ¿Hay algún caso de uso en el que esto sea deseable?
¿O es el $taxonomy
parámetro requerido en get_term()
una cola vestigial de una encarnación anterior de la estructura de la base de datos?
wp_term_taxonomy
tabla se usa como índice para esa tabla, lo que hace que la consulta sea más rápida (incluso si es solo un término).EXPLAIN
diceterm_id
.Respuestas:
He registrado un boleto contra esto con trac: http://core.trac.wordpress.org/ticket/20536
Sin embargo, resulta que por el momento ES necesario, ya que WordPress actualmente (desde 2.x) tiene un error que SÍ asocia dos términos con el mismo nombre al mismo term_id. Entonces es posible (aunque incorrecto) que un solo término se asocie con más de una taxonomía. Vea este error: http://core.trac.wordpress.org/ticket/5809
Es bastante amplio, por lo que la implementación de la solución tendrá que ser probada de forma exhaustiva. Intentaré recordar actualizar esta pregunta si hay algún desarrollo.
fuente
No. Los términos tienen babosas para admitir archivos de términos. Y tener las babosas dos veces trae muchas trampas mineras o "wontfix" en algunos escenarios de enlaces permanentes.
Sí: imagine que tiene términos para, por ejemplo,
size
y tiene tres taxonomías nombradaslength
,width
yheight
(también podría pensar en colores). Pero eso no es compatible por las razones escritas anteriormente.Desde mirar la mesa y ejecutar un
EXPLAIN
,term_id
es la clave principal. Supongo que en sistemas más grandes podría ser más rápido consultar solo términos específicos de taxonomía utilizando una unión (lenta) que consultar todos, ordenarlos y filtrar lo que necesita.fuente