前些天, @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 } |
/**
* 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 屬性,修改一下就可以禁止修改任何字段。
如果要禁止訪問“我的個人資料”,可以參考:https://www.wpdaxue.com/disallow-editing-profile-information.html