Pytanie brzmi: „Jaka jest różnica między taksonomiami hierarchicznymi a niehierarchicznymi?” To pytanie naprawdę mnie zaskoczyło, więc pomyślałem, że dobrym pomysłem byłoby pokazanie różnicy innym użytkownikom surfującym po stronie, którzy szukają wyróżnienia.
W szczególności pytanie dotyczy hierarchical
argumentu przekazanego do register_taxonomy()
funkcji. Mówiąc dokładniej, jaka jest różnica między tym:
„hierarchical” => false
register_taxonomy('movie-genre', 'movie', array(
'hierarchical' => false,
'label' => 'Genre',
'query_var' => 'movie-genre',
'rewrite' => array('slug' => 'genres' ),
));
I to?
„hierarchical” => true
register_taxonomy('movie-genre', 'movie', array(
'hierarchical' => true,
'label' => 'Genre',
'query_var' => 'movie-genre',
'rewrite' => array('slug' => 'genres' ),
));
Uwaga: zamierzam odpowiedzieć na własne pytanie, ale nie oznaczę tego jako najlepszego, chyba że nikt inny nie podejmie również naprawdę dobrej odpowiedzi. Również moje przeczucie mówi mi, że nie mogłem uchwycić każdej różnicy między dwoma dychotomiami, więc jeśli nie, daj nam znać, co przegapiłem.
taxonomy
tags
hierarchical
MikeSchinkel
źródło
źródło
Odpowiedzi:
Prosta odpowiedź jest taka, że warunki w hierarchicznej taksonomii może mieć warunki potomnych . Ale co jeszcze?
„hierarchical” => false
Kiedy określisz a
'hierarchical'=>false
, otrzymasz następujący typ metaboksu, który jest formatem metaboksu, który WordPress używa również do tagów postów :„hierarchical” => true
Jednak po określeniu
'hierarchical'=>true
otrzymujesz następujący typ metaboksu, który jest formatem metaboksu, którego WordPress używa także dla kategorii :Oczywiście powyższy przykład wskazuje również, gdzie hierarchiczna kategoryzacja może być trochę mieszana, ponieważ w rzeczywistości podkategorie często dotyczą wielu kategorii nadrzędnych. Mimo to umożliwienie „wielu rodzicom” nie polega na tym, jak taksonomie hierarchiczne działają w WordPressie, ale IMO idealnie kategoryzujące wszystko jest prawie niemożliwe bez względu na to, jak działa WordPress. Więc Caveat Emptor!
W sprawie niestandardowej rejestracji taksonomii lub „Dlaczego to nie oszczędza?”
Chociaż nie jest to bezpośrednio związane z pytaniem, czy jesteś początkującym testującym niestandardowe taksonomie ( lub doświadczonym twórcą, który nie zwraca uwagi, jak mi się przydarzyło, kiedy to napisałem! ), Prawdopodobnie spróbujesz dodać
register_taxonomy()
kod widzisz w pytaniu bezpośrednio wfunctions.php
pliku motywu . Ups!Jeśli dodasz kod bezpośrednio do
functions.php
metaboksu, wyświetli się, ale nie zapisze nowo dodanych terminów (a w'heirarchical'=>true
postaci metaboksu twoje istniejące terminy nie zostaną załadowane z polami wyboru.) To dlatego, że musisz zarejestrować niestandardowe taksonomie ( i niestandardowe typy postów) wewnątrzinit
haka, takie jak:Mam nadzieję że to pomoże!
źródło