사용자 프로필 페이지에 사용자 지정 양식 필드를 추가하는 방법


29

사용자 프로필 페이지에는 다음 필드가 있습니다.

아이디
이름

닉네임 표시 이름 연락처 정보 이메일 웹 사이트 AIM Yahoo IM
Jabber / Google Talk

이 섹션에 더 많은 필드를 추가하는 방법 전화 번호, 주소 또는 기타 항목과 같은 필드

답변:


37

당신은 사용할 필요가 'show_user_profile', 'edit_user_profile', 'personal_options_update''edit_user_profile_update'후크.

전화 번호를 추가하는 코드는 다음과 같습니다 .

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;
}

이 코드는 사용자 화면에 다음과 같은 필드를 추가합니다.

이 주제에 유용한 몇 가지 블로그 게시물이 있습니다.

또는 자신의 롤을 원하지 않는 경우 다음과 같은 기능을 추가하는 플러그인이 있습니다 (다른 툴이 있다고 확신하지만).


마이크, 나는 수정을 구하기 위해 많은 문제에 부딪쳤다. 나는 완전한 "찾기 및 교체"를 할 때 마침내 그것을 못 박았다. 나중에 참조 할 수 있도록 "이름"과 "제목"필드가 정확히 일치해야합니까?
Jonathan Wold

@Jonathan Wold- "이름"과 "제목"필드가 정확히 일치해야합니까? " 당신은 나에게 어떻게 물어야 하는지를 알 수있는 충분한 문맥을주지 않았다. 그리고 당신은 완전한 새로운 질문 을 만들고 싶을 수도 있습니다 .
MikeSchinkel

1
@MikeSchinkel Cimy User Extra Fields는 권장하지 않습니다. 지원은 실제로 존재하지 않으며 코드는 ... hm입니다.
카이저

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);

이것이 도움이되기를 바랍니다.

출처 : WPBeginner

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.