问题描述

在 WordPress 类别的代号之间或任何自定义分类框内,有一个链接与文本 「+添加新类别」 有一种方式这个链接可以删除,而不诉诸 JS 或 CSS 黑客来隐藏它?使用某种过滤器或动作钩子隐藏它的方法将是最好的。

如果没有动作钩子或过滤器方法来删除它,我将以 JS 和 CSS 解决方案作为最后的手段。

我这样做的原因是因为我有一个 WordPress 安装与 Magento 集成,我正在创建并填充一个名为”brands” 的自定义分类,其中包含 Magento 数据库中的一系列品牌,因此可以将一个职位分配给一个品牌。显然这意味着我不希望用户能够添加自己的条款,只能动态地选择添加的品牌,以保持与 Magento 的 in-sync 。

谢谢。

最佳解决方案

默认的 metaboxes 注册在文件 wp-admin/includes/meta-boxes.php 中。在那里你可以找到功能 post_categories_meta_box(),它将生成分类学的 metabox 。目前没有可用于过滤输出的钩子。但是您可以执行以下操作之一:

  1. 使用 remove_meta_box()删除现有的类别 metabox 并使用 add_meta_box()注册自己的类。将现有代码复制并传递到新的 metabox 函数,并将代码块从 345 行移除到 367

  2. 更清洁的方法:使用 remove_cap()从用户角色中删除 edit_terms 功能。如果您看到 metabox 功能,在 345 线上,您可以看到一个 if-statement,它检查用户是否具有 edit_terms 的能力。如果是,将显示+ Add New XY 。问题在这里,能力的名称是动态的,可以是任何东西。如果有人注册了具有不同功能命名的分类法,这可能无法正常工作 (未经测试) 。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。