根据功能隐藏用户字段

时间:2014-03-13 作者:user27636

我正在努力解决这个问题。我试图为当前用户隐藏2个用户配置文件字段。只有具有“edit\\u users”功能的管理员或用户才能查看/编辑这些字段。

代码:

function modify_contact_methods($profile_fields) {

    // Field addition and removal will be done here
    // Add new fields
    $profile_fields[\'company_name\'] = \'Company Name\';
    $profile_fields[\'company_id\'] = \'Company ID\';

    if(current_user_can(\'edit_users\')) {
        return $profile_fields;
    }
}
add_filter(\'user_contactmethods\', \'modify_contact_methods\');
现在,当用户是管理员时,它显示良好,但如果用户不具备“edit\\u users”功能,则此错误会显示在其他联系人字段之间的页面上:

警告:为/home/xxxxxxxxxx/xxxxxxxx/wp admin/user edit中的foreach()提供的参数无效。php在线421

如何正确地编写代码,使其不会出现此错误?有什么想法吗?欢迎提供任何建议/代码示例。

1 个回复
最合适的回答,由SO网友:czerspalace 整理而成

此筛选器需要返回某些内容。试试这个

function modify_contact_methods($profile_fields) {
    if(current_user_can(\'edit_users\')) {
        // Field addition and removal will be done here
        // Add new fields
        $profile_fields[\'company_name\'] = \'Company Name\';
        $profile_fields[\'company_id\'] = \'Company ID\';
    }

    return $profile_fields;
}
add_filter(\'user_contactmethods\', \'modify_contact_methods\');

结束

相关推荐

PHP致命错误:无法为wp-includes/capabilities.php中的非对象调用重载函数

我在apache日志中遇到了太多以下错误。PHP Fatal error: Cannot call overloaded function for non-object in wp-includes/capabilities.php on line 1187这是函数current\\u user\\u can($capability)的内部,第1187行如下所示:$current_user = wp_get_current_user(); 我不知道问题出在哪里?