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
Alexander Holsgrove
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
P. Galbraith
Questa soluzione non crea una casella di spunta o un menu a discesa.
Brad Dalton
Dove posso modificare le informazioni come suggerito da Justin Fowell? Scusate se è una cosa ovvia per voi, sto ancora imparando. Emily
Emily Wilding
Nella chiamata register_taxonomy() che hai fatto per la tua tassonomia personalizzata. Come hai configurato la tassonomia?
Rup
Oh sì... Grazie! MA Sarebbe ora possibile cambiarlo in checkbox o anche select? Vorrei poterlo inserire come impostazione nelle opzioni del mio plugin.
Julian F. Weinert
Impostare hierarchical a true dovrebbe cambiare l'interfaccia in checkbox nella schermata di modifica del CPT.
vancoder
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?
Julian F. Weinert
Beh, gerarchico lo rende... gerarchico :) Per quanto ne so, non puoi passare tra le 2 interfacce.
vancoder
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(.....