有一种比隐藏用户界面更简单(更安全的方法*)的方法(show_ui=false
) 以及添加自定义元框以仅显示术语:删除用户管理术语的能力。
如果您删除了用户管理术语的功能,那么您不仅有了一个安全的解决方案,而且用户界面也会自行处理。作为register_taxonomy()
您可以指定用户必须具备的管理/编辑/删除和分配术语的功能。
register_taxonomy(
\'categories\',
array( \'blurb\' ),
array(
...
\'show_ui\' => true,
\'capabilities\' => array(
\'manage_terms\' => \'a_capability_the_user_doesnt_have\',
\'edit_terms\' => \'a_capability_the_user_doesnt_have\',
\'delete_terms\' => \'a_capability_the_user_doesnt_have\',
\'assign_terms\' => \'edit_posts\'
),
...
)
)
对于前三个,您需要将功能设置为用户不具备的功能。事实上,把它留在上面可能就可以了。如果
you 仍然希望管理/编辑/删除术语您可以始终使用您拥有的功能,但您的客户可以(他们可以
manage_options
, 例如?)。这将允许您创建和维护“静态”列表。或者,在进行上述更改之前,您可以简单地这样做。
最后,您需要为assign_terms
用户确实有。默认情况下,它是edit_posts
, 所以你可能可以就这么说了。但是,您可能希望创建新功能edit_blurb
, 这样您就可以允许用户编辑简介,但不能编辑帖子。
WordPress,然后处理其余部分。由于用户无法管理/编辑/删除术语,管理菜单将消失。此外,编辑blurb页面上的metabox仅显示现有术语,用户无法添加/删除或编辑任何术语。
请记住,隐藏UI并不会删除用户编辑和删除术语的能力,它只是将其隐藏。