使用args的PHP函数引用

时间:2014-09-23 10:16:01

标签: php wordpress

我是PHP的新手。我试图隐藏某些用户(编辑)的某些仪表板导航项。我已经将这个添加到函数中,这些函数已经为所有用户隐藏了它:

<?php
function remove_menus(){
  remove_menu_page( 'edit-comments.php' );          //Comments
}
add_action( 'admin_menu', 'remove_menus' );
?>

它说here您可以使用'current_user_can'来查明某些用户,但我不确定如何将两者结合使用。 到目前为止,我已经尝试过:

function remove_menus(){
    current_user_can(
    remove_menu_page( 'editor', 'edit-comments.php' );          //Comments
) );
}

function remove_menus(){
current_user_can( array(
remove_menu_page( 'editor', 'edit-comments.php' );          //Comments
) );
}

..但是从查看其他函数来看,它们似乎在括号中使用=&gt; inbetween所以我假设我以错误的方式使用这个函数。

任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

第一个答案,非常简单,使用逻辑&#34; OR&#34;操作者:

            <?php 
            function remove_menus(){
                if( current_user_can('editor') || current_user_can('administrator') ) {  // stuff here for admins or editors
                   remove_menu_page( 'edit-comments.php' );  //stuff here for editor and administrator
                }
            } ?>

如果要检查两个以上的角色,可以检查当前用户的角色是否在角色数组中,如:

        <?php 
        function remove_menus(){
            $user = wp_get_current_user();
            $allowed_roles = array('editor', 'administrator', 'author');
            if( array_intersect($allowed_roles, $user->roles ) ) { 
                remove_menu_page( 'edit-comments.php' ); //stuff here for allowed roles
            } 
        } ?>

但是,current_user_can不仅可以用于用户角色名称,还可以用于功能。因此,一旦编辑和管理员都可以编辑页面,您的生活就可以更轻松地检查这些功能:

        <?php 
        function remove_menus(){
            if( current_user_can('edit_others_pages') ) {  
                remove_menu_page( 'edit-comments.php' );// stuff here for user roles that can edit pages: editors and administrators
            } 
        }
        ?>

有关功能的更多信息,请查看here