Tassonomia personalizzata come checkbox o menu a discesa
Ho registrato una tassonomia personalizzata al mio CPT. Nella schermata di modifica, il meta box della tassonomia appare con un campo di autocompletamento.
È possibile visualizzarlo come checkbox o menu a discesa invece?

A partire da WP 3.7 (https://core.trac.wordpress.org/ticket/14206) puoi aggiungere questo argomento a register_taxonomy:
'meta_box_cb' => 'post_categories_meta_box'
per ottenere il metabox integrato con lo stile a checkbox delle categorie senza dover rendere la tua tassonomia gerarchica.
In alternativa, puoi fornire la tua funzione di callback per creare un metabox personalizzato (ad esempio con un dropdown).

Fantastico, questo è esattamente ciò di cui avevo bisogno senza dover rendere la tassonomia gerarchica. Grazie

Il problema con questo approccio è che le tassonomie non gerarchiche e gerarchiche hanno una struttura dei dati diversa che deve essere salvata. Per vedere come risolvere questo problema, consulta qui https://gist.github.com/gschoppe/29ba81a1f676d7802cb8#file-cat-like-custom-taxonomy-php

Questa soluzione non crea una casella di spunta o un menu a discesa.

Dove posso modificare le informazioni come suggerito da Justin Fowell? Scusate se è una cosa ovvia per voi, sto ancora imparando. Emily

Nella chiamata register_taxonomy() che hai fatto per la tua tassonomia personalizzata. Come hai configurato la tassonomia?

Oh sì... Grazie! MA Sarebbe ora possibile cambiarlo in checkbox o anche select? Vorrei poterlo inserire come impostazione nelle opzioni del mio plugin.

Impostare hierarchical a true dovrebbe cambiare l'interfaccia in checkbox nella schermata di modifica del CPT.

Sì, lo fa – ma vorrei poter alternare tra queste opzioni. Non penso che sia una buona pratica passare da hierarchal a non hierarchal. Non cambia SOLO l'interfaccia, ho ragione?

Beh, gerarchico lo rende... gerarchico :) Per quanto ne so, non puoi passare tra le 2 interfacce.

Se vuoi modificare il termine esistente di un plugin in una checkbox, devi modificare la funzione register_taxonomy() esistente.
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' è il nome del termine utilizzato in register_taxonomy('roomtype', array(.....
