如何从类别Metabox删除“ +添加新类别”链接


9

在Wordpress类别metabox或任何自定义分类框内,有一个带有文本“ + Add New Category”的链接,有没有一种方法可以删除此链接,而无需借助JS或CSS hacks将其隐藏?最好使用某种过滤器或动作挂钩隐藏它。

如果没有动作挂钩或过滤器方法可以将其删除,那么我将不惜一切代价向JS和CSS解决方案开放。

之所以这样做,是因为我将Wordpress安装与Magento集成在一起,并且正在使用Magento数据库中的品牌列表创建并填充名为“品牌”的自定义分类法,以便可以将帖子分配给某个品牌。显然,这意味着我不希望用户能够以自己的方式添加内容,而只能选择动态添加的品牌以使其与Magento保持同步。

谢谢。

Answers:


14

默认的元框已在文件中注册wp-admin/includes/meta-boxes.php。在那里您可以找到post_categories_meta_box()将生成分类法元框的函数。当前没有钩子可用于过滤输出。但是您可以执行以下操作之一:

  1. remove_meta_box()用于删除现有的类别metabox并使用进行注册add_meta_box()。将现有代码复制并粘贴到新的metabox函数中,然后将代码块从行删除345367
  2. 更干净的方法:使用删除edit_terms用户角色的功能remove_cap()。如果您查看metabox函数,则可以在网上345看到一个if语句,该语句检查用户是否具有能力edit_terms。如果是这样,+ Add New XY将显示。问题在这里,功能的名称是动态的,可以是任何东西。如果有人用不同的功能命名注册了分类法,则这可能不起作用(未经测试)。

1
是的。实际上,功能是一种不错的方法。但是,我不想仅从其他分类法中删除该功能。我决定用一些好的老式CSS隐藏链接是最简单的选择。感谢您的宝贵建议。
Dwayne Charrington

2
我无法评论rofflox的帖子,但功能似乎已更改为“ manage_categories”
pkmatte 2014年

谢谢!这是我能找到的最佳方法,因此我在多站点上使用了此功能,因此使用功能“ setup_network”来限制站点管理员将这些功能用于需要添加的未分类插件添加的分类法。
山姆
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.