今天就分享下,通过 jQuery 给表单添加禁用 disabled=”disabled” 或 只读 readonly=”readonly” 属性来禁止用户编辑字段的方法。
以禁止用户编辑“我的个人资料”中的电子邮件为例
将下面的代码添加到主题的 functions.php 文件即可:
/**
* 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 属性,修改一下就可以禁止修改任何字段。