我有几个自定义帖子类型,它们共享两个自定义分类法(位置和服务)。自定义分类显示在每个post type菜单中,这似乎有点多余。我的客户不需要编辑这些分类法,所以我认为在每个菜单中看到重复的分类法只会让他们感到困惑。
是否有办法将其从除一种帖子类型之外的所有帖子类型的管理菜单中删除,同时仍保持对所有帖子类型的注册?我知道有插件可以隐藏管理菜单项,但我想知道我是否可以在注册自定义分类法时添加一些东西来防止它?
下面是我的分类代码示例:
// 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 );
最合适的回答,由SO网友:RachieVee 整理而成
您可以使用remove_submenu_page 注册分类后的函数。
默认情况下,它是这样工作的,它有2个必需的参数$menu_slug
(这些是父菜单,例如帖子、媒体、页面、评论等),以及$submenu_slug
(这些是这些菜单的子菜单)这是您要删除的内容,因为您的自定义分类将显示在帖子或自定义帖子类型下:
<?php remove_submenu_page( $menu_slug, $submenu_slug ); ?>
如果你不确定你的
$menu_slug
是,检查
remove_menu_page examples 查看在第一个参数中输入的内容。在您的情况下,由于它位于帖子或自定义帖子类型下,因此它将被编辑。php。
对于第二个参数,$submenu_slug
, 我所做的是在注册分类法之后,我用浏览器检查器检查了菜单项,以查看菜单项的链接是编辑标记。php?分类法=位置。
因此,使用自定义分类法“位置”,您可以编写如下内容:
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 */
}
它应该只影响仪表板侧栏,而不影响自定义帖子类型中的元框。希望有帮助!