J'essaie de créer une taxonomie qui est en quelque sorte cachée .. ce qui signifie que j'ai l'intention d'ajuster la metabox afin que vous ne puissiez sélectionner qu'un terme unique parmi 3 options. "en vedette", "normal" ou "exclu". mais je n'arrive pas à comprendre comment supprimer le menu d'administration.
ce qui suit supprime l’élément de menu Étiquettes sous Messages:
add_action('admin_menu','yoursite_admin_menu');
function yoursite_admin_menu() {
// remove_submenu_page was introduced in 3.1
remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=post_tag' );
}
mais cela ne supprime pas la taxonomie en vedette de Portfolio
add_action('admin_menu','yoursite_admin_menu');
function yoursite_admin_menu() {
// remove_submenu_page was introduced in 3.1
remove_submenu_page( 'edit.php?post_type=portfolio', 'edit-tags.php?taxonomy=featured&post_type=portfolio' );
}
je l'ai essayé de plusieurs façons différentes en ce qui concerne les limaces, mais je ne parviens pas à les faire fonctionner. Qu'est-ce que je rate?
suite au commentaire de Bainternet, j’ai enregistré la taxonomie sans montrer aucun des éléments de l’interface utilisateur
add_action( 'init', 'kia_register_featured_tax', 0 );
function kia_register_featured_tax(){
if(!taxonomy_exists('portfolio_featured')){
$labels = array(
'name' => _x( 'Featured', $this->plugin_domain ),
'singular_name' => _x( 'Featured', $this->plugin_domain )
);
$args = array(
'labels' => $labels,
'rewrite' => array( 'slug' => 'portfolio-featured' ),
'query_var' => true,
'public' => true,
'show_ui' => false,
'show_tagcloud' => false,
'show_in_nav_menus' => false,
);
register_taxonomy( 'portfolio_featured', array( 'portfolio' ), $args );
}
}
Vous pouvez utiliser remove_submenu_page()
, mais il est difficile d’adapter correctement le slug du sous-menu et il faut qu’il fonctionne parfaitement. Le sousmenu_slug correct n'est pas exactement le même que le lien que vous cliquez dans le menu. Celui du menu est encodé en URL mais le slug lui-même est codé en html, la principale différence étant que le slug, les caractères &
seront à la place de &
.
Dans votre exemple, l'appel de fonction devrait probablement être:
remove_submenu_page( 'edit.php?post_type=portfolio', 'edit-tags.php?taxonomy=featured&post_type=portfolio' );
Pour bien comprendre, var_dump la variable de sous-menu et voir le slug utilisé par le système, voir https://stackoverflow.com/questions/7610702/wordpress-remove-submenu-from-custom-post-type/ pour un exemple travaillé.
Cette peut-être vieux, et peut-être même au moment de la question initiale non disponible mais ..
Si vous regardez dans wp-includes/taxonomy.php, il existe une option show_in_menu pour le hook register_taxonomy () qui n’a pas été inclus dans la documentation de WordPress.
Je pensais que je laisserais ça ici à ceux qui cherchent la réponse :)