在WordPress中添加自定义字段到用户配置文件

WordPress在用户中如此受欢迎的原因之一是它为我们提供了一个很棒的用户管理系统,以及创建多作者博客和发布平台的能力. 但是,在某些情况下,有必要扩展默认用户信息, 并在用户配置文件中添加更多字段. 在本教程中 添加元框 转用户配置文件. 有两种方法可以添加用户元数据,让我们分别仔细研究一下.



使用user_contactmethods过滤器

第一种方法是最简单的,但它有一些局限性. 通过使用此方法,您可以添加联系信息, 比如社交媒体链接, 但您将无法添加任何其他自定义数据. 在大多数情况下, however, 这就足够了, 这就是为什么我们将首先向您展示如何使用它.

user_contactmethods 一个过滤器叫什么 wp_get_user_contact_methods. 使用此过滤器,我们可以添加所需的社交字段,并在管理面板的用户页面上输出它们. 然后,我们将能够填写每个字段,并保存新的用户信息. 如果您希望使用此过滤器,请将以下代码添加到您的函数中.php file:

这个函数 tm_additional_contact_methods 在每次从数据库中提取用户信息时调用. 这个论点 $fields 是包含所有联系人选项的数组吗. 在我们的函数中,我们使用它来添加三个额外的字段,并返回它以进行进一步处理. 添加过滤器后,您可以在“Contact Info”部分找到新字段.

WordPress在用户配置文件中添加元框

为了在前端显示保存的数据,使用该功能 get_the_author_meta,例如,如果您想显示FaceBook个人资料链接,请使用


Get_the_author_meta (' facebook ');

使用'edit_user_profile'和'show_user_profile'钩子

第二种添加用户信息的方法更灵活,但也更复杂. 它包括两个阶段, 首先,我们需要输出自定义字段, 然后将它们的值保存到数据库中.

为了添加我们自己的字段,我们将使用 edit_user_profile and show_user_profile hooks, 在用户页面(或您自己的个人资料页面)上输出“更新”按钮之前调用。. 让我们尝试添加一个字段来显示用户的生日. 为了做到这一点,我们需要向函数中添加以下代码.php file:


/**
 *在“更新”按钮上方添加新字段.
 *
 * @param WP_User $user用户对象.
 */
函数功能tm_additional_profile_fields($user) {

    $months 	= array('一月'), 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', “12”);
    $default	= array( 'day' => 1, 'month' => 'Jnuary', 'year' => 1950, );
    $birth_date = wp_parse_args( get_the_author_meta( 'birth_date', $user->ID ), $default );

    ?>
    

Extra profile information


让我们详细检查一下这段代码. 首先,我们需要做一些准备工作. 因为所请求数据的范围受到天数和月份的限制, 最好不是简单地添加文本输入字段, 但是选择带有日期和月份列表的框. 这就是为什么让我们创建一个包含可用月份列表的数组.


$months = array('一月'), 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', “12”);

我们也可以得到保存在数据库中的出生日期的值. 以避免错误, 让我们通过使用将数据库中的数组和具有默认值的数组组合起来 wp_parse_args.


$default = array( 'day' => 1, 'month' => 'January', 'year' => 1950, );
$birth_date = wp_parse_args( get_the_author_meta( 'birth_date', $user->ID ), $default );

下一步是为我们的字段编写HTML代码. 我们将用for和foreach循环填充选择框, 并使用selected函数检查哪些选项保存在数据库中. 我们应该特别注意选择框的name属性, 它们的值按birth_date[day]格式设置. 通过这种方式,我们可以将出生日期存储在单个数组中.

添加这段代码后,我们可以在用户配置页面上看到以下图片:

用户的出生日期元数据在WordPress管理面板

现在让我们添加一种将字段值保存到数据库中的机制. 为了做到这一点,我们将在函数中添加以下代码段.php:


/**
 *保存额外的配置文件字段.
 *
 @param int $user_id当前用户ID.
 */
函数功能tm_save_profile_fields($user_id) {

    if ( ! Current_user_can ('edit_user', $user_id)) {
   	 返回错误;
    }

    if (empty($_POST['birth_date'])) {
   	 返回错误;
    }

    update_usermeta($user_id, 'birth_date', $_POST['birth_date']);
}

Add_action ('personal_options_update', 'tm_save_profile_fields');
Add_action ('edit_user_profile_update', 'tm_save_profile_fields');

在这个函数的开头,我们添加了几个安全检查,以避免在将数据保存到数据库时出现错误.

Now by using get_the_author_meta 函数我们可以在前端输出用户的出生日期. 在本例中,此函数返回一个包含day元素的数组, month, 以及用户的出生年份.

最后,我们可以将第一个和第二个例子结合起来,并将它们用作显示有关用户的扩展信息的函数的基础:


function tm_author_bio() {

    $socials = array(
   	 'twitter' => array(
   		 'label' => 'Twitter',
   		 'url'   => 'http://twitter.com/'
   	 ),
   	 'facebook' => array(
   		 'label' => 'Facebook',
   		 'url'   => 'http://www.facebook.com/'
   	 ),
   
    );

    $birth_date = get_the_author_meta( 'birth_date' );

    ?>
    
Birth date:
$data ) { if ( get_the_author_meta( $net ) ) { $url = esc_url( $data['url'] . esc_attr( get_the_author_meta( $net ) ) ); $label = $data['label']; echo ''; } } ?>

让我们快速浏览一下函数中的代码. 一开始,我们创建了一个包含社交媒体网络数据的数组, 这样我们就可以用它来显示用户的社交链接列表. 可以使用内爆功能显示出生日期, 将数组中的元素转换成字符串, 使用空格作为分隔符. 其余的用户数据可以使用标准的WP功能显示,例如 get_avatar, the_author_posts_link, and the_author_meta.
请随意下载本教程的源代码, 我们决定把它变成一个小插件. 安装并激活插件后, 你可以用下面这行代码显示一个包含额外用户信息的框:


Do_action ('tm_author_bio');

我们希望本教程能够帮助您更深入地理解向WordPress站点添加用户元数据的方法, 并自己实现这些方法.

敬请关注,更多教程即将推出!


不要错过这些一直以来的最爱

  1. The best hosting 用于WordPress网站. 点击我们的链接,获得市场上最优惠的价格,82%的折扣. 如果HostPapa没有给你留下深刻的印象,看看其他 alternatives.
  2. 网站安装服务 -让您的模板启动和运行在短短6小时内没有麻烦. 没有一分钟是浪费的,工作正在进行.
  3. 一个会员 -下载无限数量的WordPress主题, plugins, PPT等产品在一个许可范围内. 因为越大越好.
  4. 现成的网站服务 最终的解决方案是否包含完整的模板安装 & 配置, 内容集成, 实现必备插件, 安全功能和扩展的页面SEO优化. 开发团队将为您完成所有工作.
  5. 必备的WordPress插件 -获得最重要的插件为您的网站在一个捆绑包. 所有插件将被安装、激活并检查是否正常运行. 
  6. 最好的库存图片的网站 -创造惊人的视觉效果. 你可以访问Depositphotos.Com选择15张无限制主题和大小选择的图片.
  7. SSL证书创建服务 -获得网站访问者的绝对信任. Comodo证书是最可靠的http协议,确保用户数据安全,免受网络攻击. 
  8. 网站速度优化服务 -增加您的网站的用户体验,并获得更好的谷歌PageSpeed得分.


安德鲁·舍普琴科

想知道WP定制器是如何工作的? 了解如何添加WP自定义字段与安德鲁. LinkedIn

在你的电子邮件中添加更多内容

订阅我们的时事通讯和访问独家内容和提供只提供给og体育首页Post订户.

发送成功!
Server error. 请稍后再试.