À l'heure actuelle, j'ai une taxonomie personnalisée pour mon type de message personnalisé case_study
. Tout fonctionne, sauf le fait que lors de la création d'un nouveau message et de l'ajout d'une taxonomie, il s'agit de "tags" et je cherchais à faire ce que les messages font de leur catégorie (la case à cocher). Y a-t-il un moyen de faire cela au lieu d'ajouter ces "balises"
Voici mon code pour enregistrer cette taxonomie
PhP
add_action( 'init', 'create_case_study_tax' );
$tax_args = array(
'hierarchical' => false,
'show_ui' => true,
'label' => __('Industry'),
'show_admin_column' => true,
'query_var' => true,
);
function create_case_study_tax() {
register_taxonomy('industry', 'case_study', $tax_args);
}
Définissez simplement 'hierarchical' => true
dans les arguments sur register_taxonomy()
(même si vous n’avez jamais l’intention d’ajouter des termes avec des relations parent-enfant) et vous obtiendrez la même interface utilisateur pour attribuer des termes à partir de cette taxonomie personnalisée lors de la création/la modification de ce type de publication personnalisé. taxonomie de la catégorie intégrée.
Et si vous souhaitez une liste déroulante de termes sur l'écran edit.php (comme WP Core ajoute automatiquement pour 'catégorie'), ajoutez ce qui suit:
add_action ('restrict_manage_posts', 'add_custom_taxonomy_dropdowns', 10, 2) ;
/**
* add a dropdown/filter to the edit.php screen for our custom taxonomies
*
* @param $post_type string - the post type that is currently being displayed on edit.php screen
* @param $which string - one of 'top' or 'bottom'
*/
function
add_custom_taxonomy_dropdowns ($post_type, $which = 'top')
{
if ('case_study' != $post_type) {
return ;
}
$taxonomies = get_object_taxonomies ($post_type, 'object') ;
foreach ($taxonomies as $tax_obj) {
if ($tax_obj->_builtin) {
// let WP handle the builtin taxonomies
continue ;
}
$args = array (
'show_option_all' => $tax_obj->labels->all_items,
'taxonomy' => $tax_obj->name,
'name' => $tax_obj->name,
'value_field' => 'slug',
'orderby' => 'name',
'selected' => isset ($_REQUEST[$tax_obj->name]) ? $_REQUEST[$tax_obj->name] : '0',
'hierarchical' => $tax_obj->hierarchical,
'show_count' => true,
'hide_empty' => true,
'fields' => 'all',
) ;
wp_dropdown_categories ($args) ;
}
return ;
}