Bagaimana cara saya memfilter hanya istilah root dalam kosakata dalam tampilan?

15

Saya memiliki kosakata yang terstruktur seperti itu:

  • Root Alpha
    • Istilah Alpha 1
    • Istilah Alpha 2
      • Subterm Alpha 1
  • Root Beta
  • Root Gamma
    • Istilah Gamma 1
    • Istilah Gamma 2

Bagaimana cara memfilter tampilan untuk hanya menampilkan istilah dasar kosakata? Saat ini pandangan saya menampilkan istilah root serta anak-anak (Istilah * *)

Melangkah ke depan dari itu saya ingin menyampaikan argumen 'Root Alpha' (atau tidnya, atau apa pun dari suatu konteks) dan kemudian memfilternya hanya kepada 'anak-anak langsung Root Alpha. (Istilah Alpha *). Memfilter lebih dalam dari itu akan menjadi bonus.

Saya bisa membuatnya bekerja jika saya meletakkan semua istilah saya dalam satu istilah root sehingga vocab menjadi:

  • Root Benar
    • Root Alpha
      • Istilah Alpha 1
      • Istilah Alpha 2
        • Subterm Alpha 1
    • Root Beta
    • Root Gamma
      • Istilah Gamma 1
      • Istilah Gamma 2

Saya tidak yakin struktur vocab mana yang lebih benar, menulis ini membuat saya sadar bahwa saya memiliki beberapa bacaan untuk dilakukan selain dari mencari tahu dengan pandangan.

Phize
sumber

Jawaban:

13

Untuk hanya menampilkan istilah root, saya punya solusi yang pasti akan membuat seseorang facepalm (setidaknya saya melakukan itu):

  1. Tambahkan filter kontekstual ke tampilan taksonomi Anda
  2. Pilih istilah Taksonomi: istilah induk .

    Atur seperti ini: Ketika nilai filter tidak tersedia : Berikan nilai default - Nilai tetap . Tetapkan nilainya ke 0 .

Ya, itu saja. Ketentuan tanpa orang tua ada 0 di sini. Lihat deskripsi bidang induk dari tabel taxonomy_term_hierarchy:

Kunci Utama: {taxonomy_term_data} .tid dari induk istilah. 0 menunjukkan tidak ada orang tua.

Scorchio
sumber
Terima kasih banyak, pasti facepalmed sendiri untuk yang satu ini. Sama seperti catatan jika seseorang terjebak dengan ini, Anda tidak dapat menentukan 'istilah taksonomi' sebagai validator ketika melakukan ini, karena tidak ada istilah dengan tid 0.
Phizes
2

jika Anda memiliki struktur taksonomi statis, Anda dapat memfilter menggunakan filter criterion: Content: Has taxonomy terms (with depth)lalu di tempat ini Anda dapat memilih hanya istilah root untuk disaring:

kriteria filter: Konten: Memiliki istilah taksonomi (dengan kedalaman)

Semoga informasi bermanfaat.

cigotete
sumber
Struktur taksonomi tidak akan statis, dan ini tidak akan memungkinkan saya untuk menyampaikan argumen dan kemudian menyaring kepada anak-anak dari istilah root.
Phizes
@ moon.watcher: Bagaimana saya bisa menggunakan istilah taksonomi (dengan kedalaman)? Saya hanya memilih orang tua tetapi anak-anak juga muncul.
sokratis
1

Anda juga dapat melakukannya dengan filter sederhana, dan struktur taksonomi non-statis:

  1. Tambahkan kriteria filter: Istilah taksonomi: id induk
  2. Pilih operator "Sama dengan" dan isi nilainya dengan "NULL"

masukkan deskripsi gambar di sini

Ini hanya akan menampilkan istilah akar dari taksonomi Anda, dan akan tetap berfungsi jika Anda mengubah struktur taksonomi nanti ...

scandel
sumber
Ya, @scandel itu akan menangani struktur taksonomi non-statis, tetapi tidak akan menangani lebih jauh ke bawah pohon seperti yang tercantum dalam pertanyaan, jawaban yang diterima tidak.
Phizes
0

Anda dapat memilihnya dengan WHERE parent = 0menggunakan db_query()di halaman Anda.

Ahmed
sumber
Saya tidak yakin apa yang Anda maksud dengan "di halaman Anda", tolong jelaskan? Juga saya sendiri tidak mengeksekusi query, view, jadi bukankah saya harus mengubah query?
Phizes