it-swarm-id.com

Perbedaan Antara Taksonomi Hierarkis dan Non-Hierarkis?

Pertanyaannya adalah "Apa Perbedaan Antara Taksonomi Hierarkis dan Non-Hirarki?" Pertanyaan ini benar-benar membuat saya bingung pada awalnya jadi saya pikir itu akan menjadi ide yang baik untuk menunjukkan perbedaan kepada orang lain yang berselancar di situs mencari perbedaan.

Secara khusus pertanyaannya mengacu pada argumen hierarchical yang diteruskan ke fungsi register_taxonomy(). Lebih khusus lagi, apa perbedaan antara ini:

'hierarkis' => salah

register_taxonomy('movie-genre', 'movie', array(
  'hierarchical'    => false,
  'label'           => 'Genre',
  'query_var'       => 'movie-genre',
  'rewrite'         => array('slug' => 'genres' ),
));

Dan ini?

'hierarkis' => benar

register_taxonomy('movie-genre', 'movie', array(
  'hierarchical'    => true,
  'label'           => 'Genre',
  'query_var'       => 'movie-genre',
  'rewrite'         => array('slug' => 'genres' ),
));

Perhatikan bahwa saya akan melanjutkan dan menjawab pertanyaan saya sendiri tetapi tidak akan menandainya sebagai yang terbaik kecuali tidak ada orang lain yang melangkah dengan jawaban yang benar-benar baik. Perasaan saya juga mengatakan bahwa saya mungkin tidak menangkap setiap perbedaan antara kedua dikotomi itu, jadi jika tidak, beri tahu kami apa yang saya lewatkan.

33
MikeSchinkel

Jawaban sederhana adalah bahwa istilah dalam taksonomi hierarkis dapat memiliki istilah anak . Tapi apa lagi?

'hierarkis' => salah

Ketika Anda menentukan 'hierarchical'=>false Anda mendapatkan jenis metabox berikut yang merupakan format metabox yang juga digunakan WordPress untuk Tag Posting :

Taxonomy Term Metabox in the Post Edit Screen when $hierarchical==false

'hierarkis' => benar

Namun ketika Anda menentukan 'hierarchical'=>true Anda mendapatkan jenis metabox berikut ini yang merupakan format metabox yang juga digunakan WordPress untuk Kategori :

Taxonomy Term Metabox in the Post Edit Screen when $hierarchical==true

Tentu saja contoh di atas juga menunjukkan di mana kategorisasi hierarkis dapat menjadi sedikit campuran karena dalam kehidupan nyata subkategori sering berlaku untuk banyak kategori induk. Meski begitu mengubah "banyak orangtua" bukan bagaimana cara kerja taksonomi hierarkis di WordPress tetapi IMO mengkategorikan sesuatu dengan sempurna hampir tidak mungkin terlepas dari cara kerja WordPress. So Caveat Emptor!

Pada Pendaftaran Taksonomi Kustom, atau "Mengapa Tidak Akan Menyelamatkan?"

Meskipun tidak terkait langsung dengan pertanyaan jika Anda seorang pemula yang mencoba taksonomi kustom, ( atau pengembang berpengalaman yang tidak memperhatikan seperti yang terjadi pada saya ketika saya menulis ini! ) kemungkinan Anda Saya akan mencoba menambahkan register_taxonomy() seperti kode yang Anda lihat dalam pertanyaan langsung ke file functions.php tema Anda. Ups!

Jika Anda menambahkan kode secara langsung ke functions.php metabox Anda akan ditampilkan tetapi itu tidak akan menyimpan istilah Anda yang baru ditambahkan (dan dalam bentuk 'heirarchical'=>true dari metabox, ketentuan yang ada saat ini tidak akan dimuat dengan kotak centang). Itu karena Anda harus mendaftar khusus taksonomi (dan jenis pos khusus) di dalam kait init, seperti:

<?php
add_action('init','register_movie_genre_taxonomy');
  function register_movie_genre_taxonomy() {
    register_taxonomy('movie-genre', 'movie', array(
      'hierarchical'    => true,
      'label'           => 'Movie Genre',
      'query_var'       => 'movie-genre',
      'rewrite'         => array('slug' => 'genres' ),
    ));
}

Semoga ini membantu!

40
MikeSchinkel