Impedir que a taxonomia personalizada seja adicionada ao menu admin?

Eu tenho vários tipos de postagem personalizada, que compartilham duas taxonomias personalizadas (localização e serviço). As taxonomias personalizadas aparecem em cada menu de tipo de publicação, e parece apenas um pouco redundante. O meu cliente não precisará editar essas taxonomias, então acho que apenas as confundirá para vê-lo repetido em todos os menus.

tipo de publicação de exemplo

Existe uma maneira de removê-lo do menu de administração para todos, exceto um dos tipos de publicação, enquanto ainda o mantém registrado para todos os tipos de postagem? Eu sei que há plugins para ocultar itens do menu do administrador, mas eu queria saber se eu poderia apenas adicionar algo quando eu registrei taxonomia personalizada para evitar isso?

Aqui está uma amostra do meu código de taxonomia:

// create custom taxonomy function my_taxonomies() { // location $labels = array( 'name' => _x( 'Location Category', 'taxonomy general name' ), 'singular_name' => _x( 'Location Category', 'taxonomy singular name' ), 'search_items' => __( 'Search Location Categories' ), 'all_items' => __( 'All Location Categories' ), 'parent_item' => __( 'Parent Location Category' ), 'parent_item_colon' => __( 'Parent Location Category:' ), 'edit_item' => __( 'Edit Location Category' ), 'update_item' => __( 'Update Location Category' ), 'add_new_item' => __( 'Add New Location Category' ), 'new_item_name' => __( 'New Location Category' ), 'menu_name' => __( 'Location Categories' ), ); $args = array( 'labels' => $labels, 'hierarchical' => true, 'show_ui' => true, 'show_admin_column' => true, ); register_taxonomy( 'location', array( 'services','community','facilities','testimonials'), $args ); 

Solutions Collecting From Web of "Impedir que a taxonomia personalizada seja adicionada ao menu admin?"

Você pode usar a function remove_submenu_page depois de registrar a taxonomia.

É assim que funciona por padrão, tem 2 parâmetros necessários, o $menu_slug (estes são os menus pai, por exemplo, postagens, mídia, páginas, comentários e assim por diante) e o $submenu_slug (estes são os filhos desses menus) que é o que você está removendo porque sua taxonomia personalizada aparecerá em posts ou seu tipo de postagem personalizado:

 < ?php remove_submenu_page( $menu_slug, $submenu_slug ); ?> 

Se você não tem certeza do que seu $menu_slug é, verifique os exemplos remove_menu_page para ver o que você colocaria no primeiro parâmetro. No seu caso, uma vez que está em posts ou seu tipo de postagem personalizado, será edit.php.

Para o segundo parâmetro, $submenu_slug , o que eu fiz foi depois de registrar a taxonomia, inspecionei o item do menu com meu inspetor de navegador para ver que o link do item de menu era editar-tags.php? Taxonomy = localização.

Então, com sua “localização” de taxonomia personalizada, você escreveria algo como isto:

 add_action( 'admin_menu', 'remove_custom_tax_wp_menu', 999 ); function remove_custom_tax_wp_menu() { $page = remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=location' ); /* See reference: http://codex.wordpress.org/remove_submenu_page#Examples */ } 

Isso só deve afetar a barra lateral do painel e não a metabox dentro de seus tipos de postagem personalizados. Espero que ajude!