高级自定义域/用户角色编辑器-如何为某些用户隐藏ACF?

时间:2012-07-19 作者:Matt

我正在使用用户角色编辑器指定自定义的用户角色。我也在使用高级自定义字段插件。

我希望能够隐藏高级自定义字段,以防某些用户显示;但是,在用户角色编辑器中执行此操作的唯一方法是取消选中“管理选项”框。这样做的问题是,它会从显示中删除其他插件,而我实际上希望为这些用户显示这些插件。

是否有一些手动代码可以放在我的函数中。只删除特定用户角色的高级自定义字段的php?只有这个插件。

1 个回复
SO网友:brasofilo

这个admin_menu 操作将隐藏ACF菜单,在本例中为非管理员。

admin_head 如果直接访问URL,将阻止访问<例如:http://example.com/wp-admin/edit.php?post_type=acfhttp://example.com/wp-admin/edit.php?post_type=acf&page=acf-settings

add_action( \'admin_menu\', \'wpse_59032_remove_acf_menu\', 9999 );
add_action( \'admin_head-edit.php\', \'wpse_59032_block_acf_screens\' );
add_action( \'admin_head-custom-fields_page_acf-settings\', \'wpse_59032_block_acf_screens\' );

function wpse_59032_remove_acf_menu() 
{
    /* if not our allowed users, hide menu */
    if ( !current_user_can(\'delete_plugins\') ) {
        remove_menu_page(\'edit.php?post_type=acf\');
    }
}

function wpse_59032_block_acf_screens()
{   
    global $current_screen;

    /* not our screen, do nothing */
    if( \'edit-acf\' != $current_screen->id && \'custom-fields_page_acf-settings\' != $current_screen->id )
        return;

    /* if not our allowed users, block access */
    if ( !current_user_can(\'delete_plugins\') ) {
        wp_die(\'message\');
    }

}

结束

相关推荐

Plugins_url()错误地返回带有www子域的URL

我正在开发一个插件,为了回答这个问题,我们称之为“我的插件”。我的插件目录如下所示:my-plugin/ |- image.jpg |- script.js |- script.php |- plugin.php |- ajax.php 在脚本中。php我有一段代码指定了一些JS。在其中,我需要一个ajax的URL。php。e、 g.:<script type=\"text/javascript\"> foo = jQuer

高级自定义域/用户角色编辑器-如何为某些用户隐藏ACF? - 小码农CODE - 行之有效找到问题解决它

高级自定义域/用户角色编辑器-如何为某些用户隐藏ACF?

时间:2012-07-19 作者:Matt

我正在使用用户角色编辑器指定自定义的用户角色。我也在使用高级自定义字段插件。

我希望能够隐藏高级自定义字段,以防某些用户显示;但是,在用户角色编辑器中执行此操作的唯一方法是取消选中“管理选项”框。这样做的问题是,它会从显示中删除其他插件,而我实际上希望为这些用户显示这些插件。

是否有一些手动代码可以放在我的函数中。只删除特定用户角色的高级自定义字段的php?只有这个插件。

1 个回复
SO网友:brasofilo

这个admin_menu 操作将隐藏ACF菜单,在本例中为非管理员。

admin_head 如果直接访问URL,将阻止访问<例如:http://example.com/wp-admin/edit.php?post_type=acfhttp://example.com/wp-admin/edit.php?post_type=acf&page=acf-settings

add_action( \'admin_menu\', \'wpse_59032_remove_acf_menu\', 9999 );
add_action( \'admin_head-edit.php\', \'wpse_59032_block_acf_screens\' );
add_action( \'admin_head-custom-fields_page_acf-settings\', \'wpse_59032_block_acf_screens\' );

function wpse_59032_remove_acf_menu() 
{
    /* if not our allowed users, hide menu */
    if ( !current_user_can(\'delete_plugins\') ) {
        remove_menu_page(\'edit.php?post_type=acf\');
    }
}

function wpse_59032_block_acf_screens()
{   
    global $current_screen;

    /* not our screen, do nothing */
    if( \'edit-acf\' != $current_screen->id && \'custom-fields_page_acf-settings\' != $current_screen->id )
        return;

    /* if not our allowed users, block access */
    if ( !current_user_can(\'delete_plugins\') ) {
        wp_die(\'message\');
    }

}