最简单的方法是使用current_user_can
显示字段之前。
例如,管理员角色具有以下功能manage_options
您新创建的用户将不会拥有这些功能。所以你可以这样做:
<?php
// wherever your fields are...
if(current_user_can(\'manage_options\'))
{
// display your fields here.
}
或者,如果您不想在自定义帖子类型的页面上显示整个元框,则可以在添加之前检查其功能。
<?php
add_action(\'add_meta_boxes_{YOUR_POST_TYPE}\', \'wpse72883_add_box\');
function wpse72883_add_box()
{
if(!current_user_can(\'manage_options\'))
return; // current user isn\'t an admin, bail
// add the meta box here
}
添加您自己的检查功能(而不是使用内置功能)可能也很有用。将管理员角色授予
edit_business_details
...
<?php
$role = get_role(\'administrator\');
if($role)
$role->add_cap(\'edit_business_details\');
这只需要发生一次——例如在插件激活时。
<?php
// some plugin file.
register_activation_hook(__FILE__, \'wpse72883_activate\');
function wpse72883_activate()
{
$role = get_role(\'administrator\');
if($role)
$role->add_cap(\'edit_business_details\');
}
然后,您可以检查该功能,就像
manage_options
.
<?php
// wherever your fields are...
if(current_user_can(\'edit_business_details\'))
{
// display your fields here.
}