Taxonomie personalizată ca checkbox sau dropdown
Am înregistrat o taxonomie personalizată pentru CPT-ul meu. Pe ecranul de editare, meta box-ul taxonomiei apare cu un câmp autocomplete.
Este posibil să o afișez ca checkbox-uri sau dropdown în schimb?
Începând cu WP 3.7 (https://core.trac.wordpress.org/ticket/14206) puteți adăuga acest argument la register_taxonomy:
'meta_box_cb' => 'post_categories_meta_box'
pentru a obține caseta meta încorporată cu stilul checkbox pentru categorii, fără a fi nevoie să faceți taxonomia ierarhică.
De asemenea, puteți furniza propria funcție callback pentru a crea propria casetă meta (de exemplu, cu un meniu derulant).
Excelent, exact asta aveam nevoie fără să fie nevoie să fac taxonomia ierarhică. Mulțumesc
Alexander Holsgrove
Problema cu aceasta abordare este că taxonomiile neierarhice și cele ierarhice au o structură de date diferită care trebuie salvată. Pentru soluția la această problemă, vezi aici https://gist.github.com/gschoppe/29ba81a1f676d7802cb8#file-cat-like-custom-taxonomy-php
P. Galbraith
Această soluție nu creează o casetă de bifat sau un meniu derulant.
Brad Dalton
Unde pot schimba informațiile așa cum sugerează Justin Fowell? Îmi cer scuze dacă e ceva evident pentru toată lumea, eu abia învăț. Emily
Emily Wilding
În apelul register_taxonomy() pe care îl folosești pentru taxonomia personalizată. Cum ai configurat taxonomia?
Rup
Oh da... Mulțumesc! DAR Ar fi posibil acum să-l schimbăm în checkbox sau chiar select? Vreau să pot include asta ca setare în configurațiile pluginului meu.
Julian F. Weinert
Setarea hierarchical la true ar trebui să schimbe interfața în checkbox-uri pe ecranul de editare pentru CPT.
vancoder
Da, așa se întâmplă – dar eu vreau să pot comuta între aceste opțiuni. Nu cred că este o practică bună să schimbi între hierarchical și non-hierarchical. Nu schimbă DOAR interfața, am dreptate?
Julian F. Weinert
Ei bine, ierarhic îl face... ierarhic :) Din câte știu eu, nu poți comuta între cele 2 interfețe.
vancoder
dacă dorești să modifici afișarea termenilor existente ai unui plugin în checkbox, trebuie să editezi funcția existentă register_taxonomy().
add_action( 'init', 'change_room_term_to_checkbox', 999);
function change_room_term_to_checkbox()
{
$tax = get_taxonomy('roomtype');
$tax->meta_box_cb = 'post_categories_meta_box';
$tax->hierarchical = true;
}
'roomtype' este numele termenului folosit în register_taxonomy('roomtype', array(.....