从WP管理员中删除特定用户角色的权能

时间:2022-01-11 作者:Marc Tzjacker

我正在努力remove 一些menu-links wp管理员提供的功能user role called wsm. 我尝试了很多方法,当我添加code below 它将从所有用户角色的菜单中删除这些链接。

问题是它还将菜单从我的own admin as Super Admin. 因此,基本上它会删除任何角色的菜单链接。

我试图添加这一行:{ if (current_user_can(\'administrator\'))

我需要删除链接也基于某些post types 如下所示。

add_filter( \'post_row_actions\', \'remove_row_actions\', 10, 1 );
function remove_row_actions_testimonials( $actions )
{ 
    if( get_post_type() === \'wiki-testimonials\' )
        unset( $actions[\'view\'] );
        unset( $actions[\'edit\'] );
    return $actions;
}
add_filter( \'post_row_actions\', \'remove_row_actions\', 10, 1 );
function remove_row_actions_staff( $actions )
  {
    if( get_post_type() === \'wiki-staff\' )
        unset( $actions[\'view\'] );
        unset( $actions[\'delete\'] );
        unset( $actions[\'trash\'] );
        unset( $actions[\'edit\'] );
    return $actions;
}
如果有人能帮我找到正确的解决方案,我将不胜感激。提前谢谢。

1 个回复
SO网友:CRavon

您可以在功能上添加一个条件,以便从取消设置操作中排除管理员,例如

add_filter( \'post_row_actions\', \'remove_row_actions\', 10, 2 );
function remove_row_actions_staff( $actions, $post ){
  //This line stops function execution if user has some admin capabilities 
  if( current_user_can( \'administrator\' ) ):
    return $actions;
   endif; 

  if( $post->post_type() === \'wiki-testimonials\' )
    unset( $actions[\'view\'] );
    unset( $actions[\'edit\'] );
  return $actions;
}