2014-03-13 39 views
1

如何在不编辑WP的核心功能的情况下隐藏用户配置文件(/wp-admin/profile.php)中的一些字段?WordPress的:在用户配置文件中禁用字段

例如,我想隐藏(或禁用,如果我不能把它放在'隐藏')电子邮件字段。我就使这个插件,但我不知道这是否是一个很好的做法:

<?php 
/** 
* Plugin Name: Disabled Email Modification 
* Plugin URI: 
* Description: Permet de désactiver la modification d'un email par un utilisateur 
* Version: 0.0.1 
* Author: Portekoi 
* Author URI: http://blog.portekoi.com 
*/ 

/* Hook pour 'plugins_loaded' */ 
add_action('plugins_loaded', 'dem_setup'); // Disabled Email Modification 

function dem_setup() { 
    add_action('admin_footer', 'dem_options'); 
} 

/** 
* Ajout Hack en JQuery pour rendre Disabled l'ID 'Email' 
*/ 
function dem_options($user) { 
    $screen = get_current_screen(); 
    if($screen->id == "profile"){ 
     ?> 
     <script> 
      jQuery(function() { 
       jQuery(document).ready(function() { 
        jQuery("#email").prop('disabled', true); 
       }); 
      }); 
     </script> 
    <?php 
    } 
} 
?> 

回答

1

据我所知,只有三个在编辑用户过滤器钩和配置文件页面:user_contactmethods,admin_color_scheme_pickershow_password_fields。其他一切都必须用jQuery完成。

您的代码可以定位在admin_footer-$hook_suffix那些特定的网页并且还加入了$作为快捷方式jQuery的改善:

add_action('plugins_loaded', 'dem_setup'); 

function dem_setup() { 
    foreach(array('profile','user-edit') as $hook) 
     add_action("admin_footer-$hook.php", 'dem_options'); 
} 

function dem_options() { 
    ?> 
    <script> 
     jQuery(document).ready(function ($) { 
      $("#email,#url").prop('disabled', true); 
     }); 
    </script> 
    <?php 
} 

我的一个插件有许多选项,对用户隐藏的网页的东西,你可以检查一些针对here的jQuery示例。

1

试试这个

function modify_contact_methods($profile_fields) { 

    // Remove old fields 
    unset($profile_fields['aim']); 

    return $profile_fields; 
} 
add_filter('user_contactmethods', 'modify_contact_methods'); 
+0

这不仅是联系方式。例如,我想删除工具栏的复选框。我怎样才能做到这一点? – Portekoi

相关问题