Làm cách nào để thêm trường biểu mẫu tùy chỉnh vào trang hồ sơ người dùng?


29

Trang hồ sơ người dùng có các trường sau:

Tên người dùng
Tên Họ Tên
Tên
Tên hiển thị Thông tin liên hệ E-mail Trang web AIM Yahoo IM
Jabber / Google Talk

Làm thế nào nhiều lĩnh vực có thể được thêm vào phần này. Trường như số điện thoại, địa chỉ, hoặc bất cứ điều gì khác.

Câu trả lời:


37

Bạn cần phải sử dụng 'show_user_profile', 'edit_user_profile', 'personal_options_update''edit_user_profile_update'móc.

Đây là một số mã để thêm số điện thoại :

add_action( 'show_user_profile', 'yoursite_extra_user_profile_fields' );
add_action( 'edit_user_profile', 'yoursite_extra_user_profile_fields' );
function yoursite_extra_user_profile_fields( $user ) {
?>
  <h3><?php _e("Extra profile information", "blank"); ?></h3>
  <table class="form-table">
    <tr>
      <th><label for="phone"><?php _e("Phone"); ?></label></th>
      <td>
        <input type="text" name="phone" id="phone" class="regular-text" 
            value="<?php echo esc_attr( get_the_author_meta( 'phone', $user->ID ) ); ?>" /><br />
        <span class="description"><?php _e("Please enter your phone."); ?></span>
    </td>
    </tr>
  </table>
<?php
}

add_action( 'personal_options_update', 'yoursite_save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'yoursite_save_extra_user_profile_fields' );
function yoursite_save_extra_user_profile_fields( $user_id ) {
  $saved = false;
  if ( current_user_can( 'edit_user', $user_id ) ) {
    update_user_meta( $user_id, 'phone', $_POST['phone'] );
    $saved = true;
  }
  return true;
}

Mã đó sẽ thêm một trường vào màn hình người dùng của bạn trông giống như thế này:

Ngoài ra còn có một số bài đăng blog có sẵn về chủ đề có thể hữu ích:

Hoặc nếu bạn không muốn tự mình sử dụng, có các plugin bổ sung các tính năng đã nói như sau (mặc dù tôi chắc chắn có các plugin khác):


Mike, tôi gặp phải một loạt rắc rối để sửa đổi. Cuối cùng tôi đã đóng đinh nó khi tôi hoàn thành một "tìm và thay thế". Để tham khảo trong tương lai của tôi, các trường "tên" và "tiêu đề" có bắt buộc phải khớp chính xác không?
Jonathan Wold

@Jonathan Wold - "các trường" tên "và" tiêu đề "có bắt buộc phải khớp chính xác không?" Bạn đã không cho tôi đủ bối cảnh để tôi biết cách gạt. Và bạn có thể muốn tạo một câu hỏi hoàn toàn mới .
MikeSchinkel

1
@MikeSchinkel Cimy Người dùng thêm Trường không phải là đề xuất tốt. Hỗ trợ không thực sự ở đó và mã là ... hm.
kaiser

8
// remove aim, jabber, yim 
function hide_profile_fields( $contactmethods ) {
    unset($contactmethods['aim']);
    unset($contactmethods['jabber']);
    unset($contactmethods['yim']);
    return $contactmethods;
}

// add anything else
function my_new_contactmethods( $contactmethods ) {
    //add Birthday
    $contactmethods['birthday'] = 'Birthday';
    //add Address
    $contactmethods['address'] = 'Address';
    //add City
    $contactmethods['city'] = 'City';
    //add State
    $contactmethods['state'] = 'State';
    //add Postcode
    $contactmethods['postcode'] = 'Postcode';
    //add Phone
    $contactmethods['phone'] = 'Phone';
    //add Mobilphone
    $contactmethods['mphone'] = 'Mobilphone';

    return $contactmethods;
}
add_filter('user_contactmethods','my_new_contactmethods',10,1);
add_filter('user_contactmethods','hide_profile_fields',10,1);

Hi vọng điêu nay co ich.

Nguồn: WPBeginner

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.