如何在 WordPress 注册中添加额外的用户资料字段

3,777字
16–24 分钟
in
Bug编译狮

Bug编译狮

要在WordPress注册表单中添加额外的用户资料字段,你需要通过修改核心文件或使用插件来实现。这里我将提供一种方法,通过自定义注册表单和使用插件来进行说明。

方法一:自定义注册表单

  1. 创建一个新页面: 首先,在您的 WordPress 网站上创建一个新的页面。这个页面将成为注册表单的模板。

  2. 编辑页面: 打开您刚刚创建的新页面,然后点击“编辑”按钮。

  3. 插入注册表单: 在页面编辑器中找到并复制以下代码到页面中:

<form method="post" action="<?php echo esc_url(home_url('/')); ?>">
  <label for="username">Username:</label>
  <input type="text" name="user_login" id="username">

  <!-- 添加其他字段 -->
  <label for="email">Email:</label>
  <input type="email" name="user_email" id="email">

  <!-- 更多字段可以在此处继续添加 -->

  <button type="submit">Register</button>
</form>
  1. 保存更改: 完成后,保存页面的更改。

  2. 激活注册表单: 激活此页面作为注册表单。这通常意味着您需要将它设置为网站默认的注册页面。

  3. 测试: 测试一下,确保所有字段都正确显示并且能够填写。

方法二:使用插件

如果上述方法过于复杂或者不适用于某些情况,您可以考虑使用WordPress插件来简化过程。

使用 Gravity Forms 插件

  1. 安装 Gravity Forms 插件: 登录到您的 WordPress 后台,进入“插件”部分,搜索并安装“Gravity Forms”。

  2. 配置 Gravity Forms: 安装完成后,打开 Gravity Forms 设置页面,按照其教程创建一个新的表单。在这个表单中,您可以添加任何数量的字段,包括用户名、电子邮件等。

  3. 链接到注册页面: 将您之前创建的表单与 WordPress 的注册页面关联起来。通常,您可以在 Gravity Forms 中选择“发布文章”,这样当用户提交表单时,他们会被重定向回注册页面。

示例代码

假设我们已经完成了上述步骤,下面是一些具体的代码示例:

  • HTML 结构

    <form method="post" action="<?php echo esc_url(home_url('/register/')); ?>">
      <label for="username">Username:</label>
      <input type="text" name="user_login" id="username">
    
      <label for="email">Email:</label>
      <input type="email" name="user_email" id="email">
    
      <button type="submit">Register</button>
    </form>
  • PHP 脚本(用于处理表单数据)

    if (isset($_POST['user_login']) && isset($_POST['user_email'])) {
        $username = sanitize_text_field($_POST['user_login']);
        $email = sanitize_email($_POST['user_email']);
    
        // 这里可以添加验证逻辑或其他处理步骤
    }

通过这些步骤,您可以在 WordPress 注册表单中轻松地添加额外的用户资料字段。这种方式不仅允许用户更全面地填写个人信息,还能增强用户体验。

目录
黑板前的Bug语法讲师

黑板前的Bug语法讲师

在WordPress中,要为注册用户提供额外的用户资料字段,可以使用register_post_type()函数来定义一个新的用户类型(如”custom_user”),并设置相应的属性和选项。下面是一些步骤和示例代码:

1. 定义新用户类型

首先,你需要创建一个名为CustomUser的新用户类型。这可以通过调用register_post_type()函数实现。

function register_custom_user() {
    $labels = array(
        'name'               => _x('Custom User', 'post type general name', 'theme_name'),
        'singular_name'      => _x('Custom User', 'post type singular name', 'theme_name'),
        'menu_name'          => __('Custom Users', 'theme_name'),
        'name_admin_bar'     => __('Custom User', 'theme_name'),
        'add_new'            => __('Add New', 'theme_name'),
        'add_new_item'       => __('Add New Custom User', 'theme_name'),
        'edit_item'          => __('Edit Custom User', 'theme_name'),
        'new_item'           => __('New Custom User', 'theme_name'),
        'all_items'          => __('All Custom Users', 'theme_name'),
        'view_item'          => __('View Custom User', 'theme_name'),
        'search_items'       => __('Search Custom Users', 'theme_name'),
        'not_found'          => __('No Custom Users found', 'theme_name'),
        'not_found_in_trash' => __('No Custom Users found in Trash', 'theme_name'),
    );
    $args = array(
        'labels'             => $labels,
        'description'        => __('Custom user for testing and demo purposes.', 'theme_name'),
        'public'             => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'show_in_nav_menus'  => false,
        'can_export'         => true,
        'has_archive'        => true,
        'exclude_from_search' => false,
        'publicly_queryable' => true,
        'capability_type'    => 'user',
        'rewrite'            => array( 'slug' => 'custom-users' ),
    );
    register_post_type( 'custom_user', $args );
}
add_action( 'init', 'register_custom_user' );

// 这里你可以自定义任何属性或选项
add_filter( 'manage_edit-custom-user_columns', 'my_add_column' );
function my_add_column($columns) {
    $columns['field'] = 'Custom Field';
    return $columns;
}

// 或者在主题文件中添加自定义列
add_action( 'manage_custom_users_custom_column', 'my_custom_column', 10, 2 );
function my_custom_column($column, $id) {
    echo '<div class="field">';
    echo '<input type="text" name="' . esc_attr( $column ) . '" value="' . get_field( 'field', $id ) . '">';
    echo '</div>';
}

2. 设置用户资料字段

接下来,需要定义新的用户资料字段。假设我们想让用户输入他们的电子邮件地址。

add_action( 'save_post', 'save_custom_user_email' );
function save_custom_user_email( $post_id ) {
    if ( isset( $_POST['custom_user_email'] ) && wp_verify_nonce( sanitize_text_field( $_POST['custom_user_email_nonce'] ), 'custom_user_email_nonce' ) ) {
        update_field( 'custom_user_email', $_POST['custom_user_email'], $post_id );
    }
}

3. 使用自定义用户资料字段

现在,你可以在wp-admin界面或其他地方显示这些字段。例如,在functions.php中:

// 在这里显示自定义用户的电子邮件
echo get_field( 'custom_user_email', 'custom_user' );

通过以上步骤,你已经成功地在WordPress中添加了一个新的用户类型,并设置了额外的用户资料字段。这将使你在设计、维护和扩展网站时能够更好地满足用户需求。