ชื่อกล่าวมันทั้งหมด ในขณะนี้ใน taxonomies ที่กำหนดเองของฉันฉันได้รับเงื่อนไขโดยใช้ id คำและชื่อ taxonomy
คิดว่าคำถามนี้จะถูกถามมาก่อน แต่หาที่ไหนไม่ได้! ดังนั้นแค่คิดว่าฉันถามและดูว่าใครมีคำตอบใด ๆ
ชื่อกล่าวมันทั้งหมด ในขณะนี้ใน taxonomies ที่กำหนดเองของฉันฉันได้รับเงื่อนไขโดยใช้ id คำและชื่อ taxonomy
คิดว่าคำถามนี้จะถูกถามมาก่อน แต่หาที่ไหนไม่ได้! ดังนั้นแค่คิดว่าฉันถามและดูว่าใครมีคำตอบใด ๆ
คำตอบ:
หากคุณพิจารณาเอกสาร Wordpress คุณจะพบWordpress Taxonomies
term_id
จะเกิดขึ้นเพียงครั้งเดียวในterm_taxonomy
ตาราง (ก่อนที่คอลัมน์จะไม่ซ้ำกันและอาจมีการแชร์คำศัพท์ข้าม taxonomies) นี้อาจจะยังคงที่จะพัฒนาขึ้นในอนาคตตามแผนงานอนุกรมวิธาน ส่วนหนึ่งของการที่จะรวมระยะและระยะตารางอนุกรมวิธาน
Codex พูดว่า:
สิ่งนี้หมายความว่า?
คำหนึ่งคำ มันสามารถเป็นของอนุกรมวิธานเช่นแท็กหมวดหมู่หรืออนุกรมวิธานที่กำหนดเอง สิ่งคือ: อาจมีหลาย taxonomies ที่มีคำเดียวกัน
สมมติว่าคุณมีคำที่เรียกว่า "ขุน" คำนี้มีหมายเลขประจำตัว นี่คือ term_id มันไม่ได้ขึ้นอยู่กับวิธีการใช้คำนี้เช่นในที่ taxonomies คำที่ปรากฏ
ตอนนี้คำว่า "ขุน" เป็นแท็กโพสต์ก็มีจำนวน นี่คือ term_taxonomy_id มันสอดคล้องกับ "แท็กโพสต์ 'ขุน' '
บางทีคุณอาจมีหมวดหมู่ที่เรียกว่า "ขุน" ในขณะที่ term_id เหมือนกัน term_taxonomy_id สำหรับ“ หมวดหมู่ 'fattening'” นั้นแตกต่างกัน
เนื่องจากนี่เป็นส่วนหนึ่งของความเข้าใจที่มากขึ้นของการออกแบบฉันจะอธิบายโดยรวม ... :)
ใน WP 4.5.3 ยังคงมีตารางเหล่านี้ทั้งหมด (ฉันจะพูดถึงพวกเขาโดยไม่มีคำนำหน้า):
เส้นทางที่จะได้รับชื่อโพสต์ข้อความที่อ่านได้ของพวกเขาทั้งหมด
โพสต์
ตัวระบุหลักที่นี่คือID
- id ของโพสต์ (ทุกประเภท)
term_relationships
ร้านค้าคู่:
object_id
- สามารถเป็นposts.ID
( แต่ไม่ได้จะต้องมี)
term_taxonomy_id
- นี่คือไม่ได้รหัสของคำ (หมวดหมู่) แต่ประชาชนของความสัมพันธ์ระหว่างคำ (หมวดหมู่) และอนุกรมวิธาน ( "หมวดหมู่ประเภท")
term_taxonomy
ตัวระบุหลักที่นี่ถูกterm_taxonomy_id
desribed ด้านบน ^^
คอลัมน์สำคัญอื่น ๆ :
term_id
- รหัสของคำศัพท์ (หมวดหมู่)
taxonomy
- เก็บคำว่า taxonomy ("ประเภทหมวดหมู่")
อันนี้อาจดูตลก แต่ความตั้งใจเริ่มแรกคือการเพิ่มความสามารถในการใช้คำศัพท์เพื่อให้มี taxonomies มากขึ้น (ซึ่งในบางกรณีอาจทำให้เข้าใจได้)
เงื่อนไข
ตัวระบุหลักที่นี่คือterm_id
- รหัสของหมวดหมู่
คอลัมน์สำคัญอื่น ๆ ที่นี่คือ:
name
- ชื่อหมวดหมู่ที่อ่านได้เช่น "แนวเพลง"
slug
- กระสุนของคำที่ใช้งานได้เช่นใน URL
ดังนั้นความโหดร้ายที่แสดงให้เห็นว่า SQL
ได้รับโพสต์ที่เผยแพร่ทั้งหมดและหมวดหมู่ทั้งหมดที่มีชื่อหมวดหมู่
อาจมีลักษณะเช่นนี้ (เพิ่มคำนำหน้าไปยังตารางเมื่อทำการทดสอบบน 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
คำไม่ใช่หมวดหมู่หรือแท็กด้วยตัวเอง จะต้องได้รับบริบทผ่านตาราง term_taxonomy
ตาราง term_taxonomy วางคำภายใน taxonomy นี่คือสิ่งที่ทำให้คำประเภทการเป็นแท็กหรือส่วนหนึ่งของอนุกรมวิธานที่กำหนดเอง (หรือในการรวมกันของ taxonomies ก)
term_id
คือ ID ของคำศัพท์ในตารางข้อกำหนด
term_taxonomy_id
เป็นรหัสที่ไม่ซ้ำกันสำหรับคู่ + คำว่า taxonomy
อยู่เสมอที่ไม่ซ้ำกันเช่นเดียวกับterm_id
term_taxonomy_id
ทั้งสองมีAuto Increment
ในโครงสร้างตาราง
ตารางwp_term_taxonomy
ทำให้แน่ใจเช่นว่าหมวดหมู่นี้ถูกสร้างขึ้นเพื่อให้ WordPress สามารถยุ่งเกี่ยวกับมันเช่นการใช้ WooCommerce: product_tag
, product_type
, product_cat
, ทั้งหมดของพวกเขาที่เรียกว่า taxonomies ที่กำหนดเอง ตารางนี้ยังผูกโครงสร้างพาเรนต์ / ลูก parent
คอลัมน์มัน
ตารางสุดท้าย term_relationships เกี่ยวข้องกับวัตถุเช่นโพสต์หรือลิงก์ไปยัง term_taxonomy_id จากตาราง term_taxonomy
ถ้าเราเลือก WooCommerce อีกครั้งเป็นตัวอย่างตารางนี้เชื่อมโยงประเภทโพสต์products
เพื่ออนุกรมวิธานของพวกเขาproduct_cat
ซึ่งมี namy wp_terms
เช่นคอมพิวเตอร์ซึ่งเป็นหลักสูตรที่ดึงมาจากตาราง ตารางนี้มีterm_id
, name
, และslug
term_group
(term_group ฉันส่วนตัวไม่เคยใช้)
หวังว่าข้างต้นทำให้สิ่งต่าง ๆ ชัดเจนยิ่งขึ้นเกี่ยวกับความแตกต่างและวิธีที่ Wordpress ใช้ตารางเหล่านี้