我正在努力解决这个问题。我试图为当前用户隐藏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
如何正确地编写代码,使其不会出现此错误?有什么想法吗?欢迎提供任何建议/代码示例。
最合适的回答,由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\');