WordPress 技巧:简化 WordPress 后台用户名称设置

来源:我爱水煮鱼  时间:2017-12-30    阅读:   我要吐槽    阿里云幸运券

默认情况下,WordPress 让用户可以在后台设置:姓,名,昵称,然后选择显示的名称。大概就是下图这个样子:

其实只是用来写写博客,很少的编辑会填这么多的东西,所以最好的方法就是把他们隐藏起来,看了一下 WordPress 源代码,名称设置这里竟然没有 filter,没有filter 那就用 JS 来隐藏,然后提交的时候,把显示的名称强制设置为昵称就好了。

最后的代码如下,同样复制到当前主题的 functions.php 文件即可:

  1. // 隐藏 姓,名 和 显示的名称,三个字段 
  2. add_action('show_user_profile','wpjam_edit_user_profile'); 
  3. add_action('edit_user_profile','wpjam_edit_user_profile'); 
  4. function wpjam_edit_user_profile($user){ 
  5.     ?> 
  6.     <script> 
  7.     jQuery(document).ready(function($) { 
  8.         $('#first_name').parent().parent().hide(); 
  9.         $('#last_name').parent().parent().hide(); 
  10.         $('#display_name').parent().parent().hide(); 
  11.         $('.show-admin-bar').hide(); 
  12.     }); 
  13.     </script> 
  14. <?php 
  15.  
  16. //更新时候,强制设置显示名称为昵称 
  17. add_action('personal_options_update','wpjam_edit_user_profile_update'); 
  18. add_action('edit_user_profile_update','wpjam_edit_user_profile_update'); 
  19. function wpjam_edit_user_profile_update($user_id){ 
  20.     if (!current_user_can('edit_user'$user_id)) 
  21.         return false; 
  22.  
  23.     $user = get_userdata($user_id); 
  24.  
  25.     $_POST['nickname']      = ($_POST['nickname'])?:$user->user_login; 
  26.     $_POST['display_name']  = $_POST['nickname']; 
  27.  
  28.     $_POST['first_name']    = ''
  29.     $_POST['last_name']     = ''

最后的效果如下图,是不是清爽多了:

Tags:后台  名称  技巧  WordPress  

参与讨论