在管理区域中自定义用户

时间:2014-04-28 作者:Greeso

我知道如何在WordPress的管理区域自定义用户。我已经做过很多次了。但是,我想对用户进行稍微不同的自定义,如下所述。

我想添加一个新标签和一个与该标签关联的新文本框。让我们称它们为“标签1”和“文本框1”。我喜欢在“用户名”字段集下和“角色”字段集之前添加这些内容。换言之,我喜欢用户在定制后的管理区域看起来像这样“

Username: <TEXTBOX FOR USER NAME>
Label 1: <TEXTBOX 1>
Role: <DROPDOWN LIST FOR ROLES>
我找到的所有示例都描述了在用户页面底部添加新字段。如何将它们添加到中间?

谢谢

1 个回复
最合适的回答,由SO网友:chrisguitarguy 整理而成

如何将它们添加到中间?

您无法将它们直接添加到您想要的位置,但您可以靠近它们。

有四个挂钩可以将内容放入个人资料页面:

  • personal_options -- 在每个用户编辑屏幕上激发,包括当用户查看自己的配置文件时。Directly above username.
  • profile_personal_options -- 仅当用户查看/编辑自己的配置文件时激发。Directly above username.
  • show_user_profile -- 当用户查看/编辑自己的配置文件时激发。At the bottom of the page, before the submit.
  • edit_user_profile -- 当其他用户正在编辑配置文件时激发(例如,管理员正在编辑其他用户的配置文件)。At the bottom of the page, before the submit.show_user_profile 和edit_user_profile.

    add_action(\'show_user_profile\', \'wpse142687_show_fields\');
    add_action(\'edit_user_profile\', \'wpse142687_show_fields\');
    function wpse142687_show_fields($user)
    {
       // echo fields and such
    }
    
    在您的情况下,您可能希望使用personal_options:

    add_action(\'personal_options\', \'wpse142687_show_fields\');
    function wpse142687_show_fields($user)
    {
       // anything here will be shown directly above the username field
       // please note that it\'s inside a form table, so you should format
       // your HTML fields accordingly
    }
    
    保存字段与将字段放在底部的效果相同。

    add_action(\'personal_options_update\', \'wpse142687_save_fields\');
    add_action(\'edit_user_profile_update\', \'wpse142687_save_fields\');
    function wpse142687_save_fields($user_id)
    {
       // check nonce
       // check permisions
       // save stuff
    }
    

结束