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

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

Această soluție nu creează o casetă de bifat sau un meniu derulant.

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

În apelul register_taxonomy() pe care îl folosești pentru taxonomia personalizată. Cum ai configurat taxonomia?

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.

Setarea hierarchical la true ar trebui să schimbe interfața în checkbox-uri pe ecranul de editare pentru CPT.

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?

Ei bine, ierarhic îl face... ierarhic :) Din câte știu eu, nu poți comuta între cele 2 interfețe.

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(.....
