Yanıtlar:
Wordpress belgelerine bakarsanız, Wordpress Taksonomileri'ni bulacaksınız.
term_id
artık term_taxonomy
tabloda yalnızca bir kez gerçekleşeceğini (sütun benzersiz olmadığından ve terimlerin taksonomiler arasında paylaşılabileceğinden) olduğuna dikkat edin. Bu, taksonomi yol haritasına bağlı olarak gelecekte de gelişmeye devam edebilir . Bunun bir kısmı , terim ve terim sınıflandırma tablolarını birleştirmektir .
Kodeks diyor ki:
Ne anlama geliyor?
Terim bir kelimedir. Etiketler, kategoriler veya özel bir sınıflandırma gibi bir sınıflandırmaya ait olabilir. Mesele şu: aynı terimi içeren birkaç taksonomi olabilir.
Diyelim ki “besi” diye bir terim var. Bu kelimenin bir kimlik numarası var. Bu terim_kimliği. Bu kelimenin nasıl kullanıldığı, yani terimin hangi sınıflandırmalarda göründüğüne bağlı değildir.
Şimdi bir yazı etiketi olarak “besi” kelimesinin de bir numarası var. Bu terim_taksonomi_kimliği. “Posta etiketi 'besi” ye karşılık gelir.
Belki de “besi” diye bir kategoriniz var. "İd" terimi aynı olmakla birlikte, "besi" kategorisi için taksonomi_id terimi farklıdır.
Bu tasarımın daha büyük bir anlayışının bir parçası olduğu için onu bütün olarak anlatacağım ... :)
WP 4.5.3'te hala tüm bu tablolar var ( önek olmadan onlar hakkında konuşacağım ):
Gönderi terimlerinin okunabilir adlarını alma yolu hepsinden geçer.
nakleder
burada ana tanımlayıcıyla olan ID
(her türlü) bir yazının bir kimlik -
term_relationships
saklar çiftleri:
object_id
- edebilirsiniz olmak posts.ID
(ancak yok değil olmak zorunda)
term_taxonomy_id
- bu DEĞİL bir terim (kategorinin) kimliği ancak kimliği İLİŞKİ bir terim (kategori) ve taksonomisinde arasında ( "kategorisinde türü")
term_taksonomi Buradaki
ana tanımlayıcı term_taxonomy_id
yukarıda açıklanmıştır ^^
başka bir önemli sütun:
term_id
- bir terimin kimliği (kategori)
taxonomy
- terimin taksonomisini saklar ("kategori türü")
Bu komik görünebilir, ancak ilk amaç, terimlerin daha fazla taksonomiye sahip olma kabiliyetini eklemekti ( bazı durumlarda mantıklı olabilir).
terimleri
burada ana tanımlayıcı term_id
- bir kategorinin kimliği
başka bir önemli sütun burada:
name
- okunabilir kategori adı örneğin "Müzik Türleri"
slug
- örneğin URL'de kullanılabilir bir terimin bilgi
Yani acımasız
yayınlanan tüm yayınları ve kategorilerinin adlarıyla birlikte tüm kategorilerini almak için
SQL'i gösteren
olabilir (kendi WP DB'nizde test yaparken tablolara önek ekleyin):
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
Terim tek başına bir kategori veya etiket değildir. Terim_taksonomi tablosu üzerinden bağlam verilmelidir.
Terim_taksonomi tablosu, bir terimi bir sınıflandırma içine yerleştirir. Bir terimi kategori yapan şey budur , bir etiket veya özel bir sınıflandırma (veya sınıflandırmaların bir kombinasyonu halinde) yapan şey budur.
term_id
, terimler tablosundaki bir terimin kimliğidir.
term_taxonomy_id
+ sınıflandırma çifti terimi için benzersiz bir kimliktir.
Her term_id
zaman tıpkıterm_taxonomy_id
. Her ikisinin Auto Increment
de tablo yapısı vardır.
Masa wp_term_taxonomy
wordpress o örn WooCommerce kullanımlarına müdahale böylece, emin bir kategori oluşturulduğunu örneğin yapar: product_tag
, product_type
, product_cat
, hepsi sözde özel taksonomilerin vardır. Bu tablo ebeveyn / çocuk yapısını da bağlar. Bu sütun ileparent
.
Son tablo olan term_relationships, term_taksonomy tablosundan yayınlar veya term_taxonomy_id'e bağlantı gibi nesneler ile ilgilidir.
Woocommerce'i örnek olarak tekrar seçersek, bu tablo yazı türünü products
sınıflandırmalarına bağlar, bu da tablodan product_cat
alınan Bilgisayarlar gibi bir ad içerir wp_terms
. Bu tablo içeren term_id
, name
, slug
veterm_group
. (kişisel olarak hiç kullanmadığım term_group)
Umarım yukarıdakiler, farklılıklar ve Wordpress'in bu tabloları nasıl kullandığı hakkında işleri biraz daha açık hale getirir.