ฉันจะกรองเฉพาะคำรูตในคำศัพท์ในมุมมองได้อย่างไร


15

ฉันมีคำศัพท์ที่มีโครงสร้างดังนี้:

  • รูตอัลฟ่า
    • ภาคเรียนที่ 1
    • ภาคเรียนที่ 2
      • Subterm Alpha 1
  • Root Beta
  • Root Gamma
    • เทอมแกมม่า 1
    • ภาคเรียนแกมม่า 2

ฉันจะกรองมุมมองเพื่อแสดงเฉพาะคำศัพท์ของคำศัพท์ได้อย่างไร ขณะนี้มุมมองของฉันกำลังแสดงคำศัพท์รูทเช่นเดียวกับลูก ๆ (คำว่า * *)

ไปข้างหน้าจากที่ฉันต้องการผ่านการโต้แย้ง 'รูตอัลฟ่า' (หรือ tid ของมันหรืออะไรก็ตามจากบริบท) และจากนั้นให้มันกรองไปที่เด็ก ๆ โดยตรงของรูตอัลฟ่า (คำศัพท์อัลฟ่า *) กรองความลึกใด ๆ เพิ่มเติมที่จะเป็นโบนัส

ฉันสามารถทำให้มันทำงานได้ถ้าฉันใส่เงื่อนไขทั้งหมดของฉันไว้ในเทอมเดียวเพื่อให้คำศัพท์กลาย

  • True Root
    • รูตอัลฟ่า
      • ภาคเรียนที่ 1
      • ภาคเรียนที่ 2
        • Subterm Alpha 1
    • Root Beta
    • Root Gamma
      • เทอมแกมม่า 1
      • ภาคเรียนแกมม่า 2

ฉันไม่แน่ใจว่าโครงสร้างคำศัพท์ใดที่ถูกต้องมากขึ้นการเขียนสิ่งนี้ทำให้ฉันรู้ว่าฉันมีการอ่านที่ต้องทำนอกเหนือจากการหามุมมอง

คำตอบ:


13

สำหรับการแสดงเฉพาะคำศัพท์รูตฉันมีวิธีแก้ปัญหาซึ่งแน่นอนว่าจะทำให้บางคนต้องเผชิญกับคน (อย่างน้อยฉันก็ทำอย่างนั้น):

  1. เพิ่มตัวกรองเชิงบริบทลงในมุมมอง taxonomy ของคุณ
  2. เลือกระยะอนุกรมวิธาน: ระยะปกครอง

    ตั้งขึ้นเช่นนี้เมื่อค่าตัวกรองไม่สามารถใช้ได้ : ให้ค่าเริ่มต้น - ค่าคงที่ ตั้งค่าเป็น0

ใช่นั่นคือทั้งหมดที่ เงื่อนไขที่ไม่มีผู้ปกครองมี 0 ที่นี่ ดูคำอธิบายของฟิลด์พาเรนต์ของตาราง taxonomy_term_hierarchy:

คีย์หลัก: {taxonomy_term_data} .tid ของพาเรนต์ของคำ 0 บ่งชี้ว่าไม่มีพาเรนต์


ขอบคุณมากใบหน้าตัวเองแน่นอนสำหรับอันนี้ เช่นเดียวกับบันทึกถ้ามีคนติดอยู่กับสิ่งนี้คุณไม่สามารถระบุ 'Taxonomy term' เป็นตัวตรวจสอบเมื่อทำสิ่งนี้เนื่องจากไม่มีคำที่มีค่า tid 0
Phizes

2

หากคุณมีโครงสร้างอนุกรมวิธานแบบคงที่คุณสามารถกรองโดยใช้filter criterion: Content: Has taxonomy terms (with depth)ในสถานที่นี้คุณสามารถเลือกเพียงแค่คำศัพท์รูทที่จะกรอง:

เกณฑ์ตัวกรอง: เนื้อหา: มีข้อกำหนดด้านอนุกรมวิธาน (ที่มีความลึก)

ฉันหวังว่าข้อมูลจะเป็นประโยชน์


โครงสร้างอนุกรมวิธานจะไม่คงที่และสิ่งนี้จะไม่อนุญาตให้ฉันผ่านการโต้แย้งแล้วกรองไปยังเด็ก ๆ ของคำศัพท์รูต
Phizes

@ moon.watcher: ฉันจะใช้เทอมอนุกรมวิธาน (ที่มีความลึก) ได้อย่างไรฉันเลือกเฉพาะผู้ปกครอง แต่เด็ก ๆ ก็ปรากฏเช่นกัน
sokratis

1

คุณสามารถทำได้ด้วยตัวกรองอย่างง่ายและโครงสร้าง taxonomy แบบคงที่:

  1. เพิ่มเกณฑ์ตัวกรอง: คำศัพท์อนุกรมวิธาน: รหัสผู้ปกครอง
  2. เลือกโอเปอเรเตอร์ "เท่ากับ" และเติมค่าด้วย "NULL"

ป้อนคำอธิบายรูปภาพที่นี่

มันจะแสดงเฉพาะคำที่รูทของอนุกรมวิธานของคุณและจะยังคงทำงานได้หากคุณเปลี่ยนโครงสร้างอนุกรมวิธานในภายหลัง ...


ใช่ @ scandan มันจะจัดการโครงสร้าง taxonomy แบบไม่คงที่ แต่มันจะไม่จัดการที่จะไปไกลกว่าต้นไม้ตามที่วางไว้ในคำถามที่คำตอบที่ยอมรับจะทำ
Phizes

0

คุณสามารถเลือกได้ด้วย WHERE parent = 0โดยใช้db_query()ในหน้าของคุณ


ฉันไม่แน่ใจว่าคุณหมายความว่าอย่างไรใน "หน้าเว็บของคุณ" โปรดอธิบาย? นอกจากนี้ฉันไม่ได้ดำเนินการค้นหาด้วยตนเองมุมมองคือดังนั้นฉันจะไม่ต้องเปลี่ยนแบบสอบถามหรือไม่
Phizes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.