从管理菜单中删除类别/标签


8

我想删除或隐藏“管理”菜单中“帖子”下的“类别/标签”子菜单。我知道这适用于主题子菜单:

remove_submenu_page( 'themes.php', 'widgets.php' );

不幸的是,这似乎不适用于帖子:

remove_submenu_page( 'edit.php', 'edit-tags.php' );

我正在使用admin_menu操作: add_action( 'admin_menu', 'function_call' )

我是否需要添加其他内容?


2
支持这个问题,你们异教徒!!!
斯宾塞·威廉姆斯

Answers:


13
add_action('admin_menu', 'my_remove_sub_menus');

function my_remove_sub_menus() {
    remove_submenu_page('edit.php', 'edit-tags.php?taxonomy=category');
    remove_submenu_page('edit.php', 'edit-tags.php?taxonomy=post_tag');
}

我没有看到它在“快速编辑”部分中隐藏标签和类别区域,但是我按照说明进行了remove_meta_box工作。
斯宾塞·威廉姆斯

这不是首选方法,就像使用css删除它们一样,不能保证任何事情。检查mbacon40答案,它看起来很没意思。
jnhghy-Alexandru Jantea '16

@ jnhghy-JanteaAlexandru remove_submenu_page没有使用CSS来删除子菜单,它消除了报名表的全局菜单阵列(见),这样的HTML标记的菜单是不是在所有渲染(而不是CSS-隐藏)。但是,确实可以防止某些用户直接访问已删除子菜单的屏幕(请参见故障单#18850),但OP要求删除菜单,这事实。
gmazzap

@gmazzap我正在做一个比较。以这种方式删除它不会确保不会通过其他方式(前端)添加标签,我试图指出的是,这仅删除了菜单条目,而不删除了与分类法的文章类型连接。:)
jnhghy-亚历山德鲁·扬提亚

7

如果要完全删除类别和标签,可以这样:

// Remove Categories and Tags
add_action('init', 'myprefix_remove_tax');
function myprefix_remove_tax() {
    register_taxonomy('category', array());
    register_taxonomy('post_tag', array());
}

5

您可能还需要从“创建帖子”页面中删除元框。

// REMOVE POST META BOXES
function remove_my_post_metaboxes() {
  remove_meta_box( 'categorydiv','post','normal' ); // Categories Metabox
  remove_meta_box( 'tagsdiv-post_tag','post','normal' ); // Tags Metabox
}
add_action('admin_menu','remove_my_post_metaboxes');

1

感谢@ mbacon40和@gmazzap,我得以使用它从菜单和产品添加/编辑页面中删除产品标签和类别(product_tag和product_cat)。

// Remove Categories and Tags
add_action('init', 'myprefix_remove_tax');
function myprefix_remove_tax() {
    register_taxonomy('product_cat', array());
    register_taxonomy('product_tag', array());
}

add_action('admin_menu', 'my_remove_sub_menus');
function my_remove_sub_menus() {
    remove_submenu_page('edit.php', 'edit-tags.php?    taxonomy=product_cat&post_type=product');
    remove_submenu_page('edit.php', 'edit-tags.php?    taxonomy=product_tag&post_type=product');
}

0

由于某些原因,edit.php在我的设置5.3下不起作用

但是这有效

remove_submenu_page( 'edit-tags.php?taxonomy=category', 'edit-tags.php?taxonomy=post_tag' );
remove_submenu_page( 'edit-tags.php?taxonomy=category', 'edit-tags.php?taxonomy=category' );
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.