Se você der uma olhada na documentação do Wordpress, você encontrará Taxonomias Wordpress
- term_id é o ID de um termo na tabela de termos
- term_taxonomy_id é um ID exclusivo para o termo + par de taxonomia.
O título diz tudo. No momento em minhas taxonomias personalizadas, estou obtendo os termos usando o termo id e o nome da taxonomia.
Pensei que essa pergunta teria sido feita antes, mas não a encontrei em lugar algum! Então, só pensei em perguntar e ver se alguém tem alguma resposta.
Se você der uma olhada na documentação do Wordpress, você encontrará Taxonomias Wordpress
O Codex diz:
O que isso significa?
Um termo é uma palavra. Pode pertencer a uma taxonomia, como tags, categorias ou uma taxonomia personalizada. A coisa é: pode haver várias taxonomias contendo o mesmo termo.
Digamos que você tenha um termo chamado "engorda". Esta palavra tem um número de identificação. Este é o term_id. Não depende de como essa palavra é usada, ou seja, em quais taxonomias o termo aparece.
Agora, a palavra "engordar" como tag de postagem também tem um número. Este é o term_taxonomy_id. Corresponde a "tag de postagem" engordar ".
Talvez você também tenha uma categoria chamada "engorda". Enquanto o term_id é o mesmo, o termo_taxonomy_id para “a categoria 'engorda'” é diferente.
Como isso faz parte de uma compreensão maior do design, vou descrevê-lo como um todo ...:)
No WP 4.5.3 ainda existem todas essas tabelas (vou falar sobre elas sem prefixo):
O caminho para obter os nomes legíveis dos termos de postagem passa por todos eles.
postagens
o identificador principal aqui é ID
- um id de um post (de qualquer tipo)
term_relationships
armazena pares de:
object_id
- pode ser posts.ID
(mas não tem que ser)
term_taxonomy_id
- isto é NÃO id de um termo (categoria) mas um id de RELACIONAMENTO entre um termo (categoria) e taxonomia ("tipo de categoria")
term_taxonomy
o identificador principal aqui é term_taxonomy_id
descrito acima ^^
outras colunas importantes:
term_id
- um id de um termo (categoria)
% taxonomy
- armazena a taxonomia do termo ("tipo de categoria")
Este pode parecer engraçado, mas a intenção inicial era adicionar a capacidade de os termos terem mais taxonomias (o que em alguns casos pode fazer sentido).
termos
o principal identificador aqui é o term_id
- um id de uma categoria
outras colunas importantes aqui são:
% name
- nome da categoria legível, por ex. "Gêneros musicais"
slug
- a lesma de um termo utilizável, e. na URL
Então, o brutal demonstrando SQL para
obtenha todos os posts publicados e todas as suas categorias com nomes de categorias
poderia ser assim (adicione prefixos às tabelas ao testar no seu próprio WP DB):
SELECT * FROM
posts #gets posts
LEFT JOIN
term_relationships #gets posts relationships to term_taxonomies
ON(posts.ID=term_relationships.object_id)
LEFT JOIN
term_taxonomy #gets term_ids
ON(term_relationships.term_taxonomy_id=term_taxonomy.term_taxonomy_id)
LEFT JOIN
terms #finally, gets terms' names
ON(term_taxonomy.term_id=terms.term_id)
WHERE (
(posts.post_status='publish')
#optionally you can filter by a certain post_type:
#AND
#(posts.post_type='some_post_type')
)
ORDER BY posts.ID ASC
Um termo não é uma categoria ou tag por si só. Deve ser dado contexto através da tabela term_taxonomy.
A tabela term_taxonomy coloca um termo dentro de uma taxonomia. Isso é o que faz um termo uma categoria , uma tag ou parte de uma taxonomia personalizada (ou em um combinação de taxonomias).
term_id
é o ID de um termo na tabela de termos.
term_taxonomy_id
é uma ID exclusiva para o termo + par de taxonomia.
O term_id
é sempre exclusivo, assim como o term_taxonomy_id
.
Ambos têm um Auto Increment
na estrutura da tabela.
A tabela wp_term_taxonomy
certifica-se, por exemplo, de que uma categoria é criada, por isso o wordpress pode interferir nela, por exemplo, o Woocommerce usa: product_tag
, product_type
, product_cat
, todas elas são as chamadas taxonomias personalizadas.
Essa tabela também vincula a estrutura pai / filho. Com sua coluna parent
.
A tabela final, term_relationships, relaciona objetos como postagens ou links para um term_taxonomy_id da tabela term_taxonomy.
Se escolhermos o Woocommerce novamente como um exemplo, essa tabela vinculará o tipo de postagem products
à taxonomia product_cat
, que contém uma nomenclatura, por exemplo, Computadores, que é naturalmente recuperada da tabela wp_terms
. Esta tabela contém os term_id
, name
, slug
e term_group
. (term_group eu pessoalmente nunca usei)
Espero que o texto acima torne as coisas um pouco mais claras sobre as diferenças e como o Wordpress usa essas tabelas.