前些天, @iweb 询问如何才能禁止用户编辑“我的个人资料”中的电子邮件,倡萌今天就分享下,通过 jQuery 给表单添加禁用 disabled=”disabled” 或 只读 readonly=”readonly” 属性来禁止用户编辑字段的方法。将下面的代码添加到主题的 functions.php 文件即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
/** * WordPress 禁止用户编辑个人资料的某些字段 * https://www.wpdaxue.com/disable-profile-fields.html */ global $pagenow; if ( !current_user_can( 'manage_options' ) && $pagenow == 'profile.php' ) { add_action( 'admin_footer', 'disable_userprofile_fields' ); } function disable_userprofile_fields() { ?> <script> jQuery(document).ready( function($) { //禁止编辑“电子邮件”(input 举例) if ( $('input[name=email]').length ) { $('input[name=email]').attr("disabled", "disabled"); } //禁止编辑“个人说明”(textarea 举例) if ( $('textarea[name=description]').length ) { $('textarea[name=description]').attr("readonly", "readonly"); } //禁止编辑“公开显示为”(select 举例) if ( $('select[name=display_name]').length ) { $('select[name=display_name]').attr("disabled", "disabled"); } }); </script> <?php } |
以上代码可以实现 非管理员用户无法编辑 电子邮箱、个人说明、公开显示为 。你可以根据自己的需要进行修改,只要查看源代码找到表单的 name 属性,修改一下就可以禁止修改任何字段。