사용자 프로필에 필드를 추가하려면 어떻게합니까?예 : 국가, 나이 등
-
-
우리의 검색을 시도하십시오.수십 가지 예를 찾을 수 있습니다.Please try our search. You will find dozens of examples.
- 5
- 2016-01-16
- fuxia
-
3 대답
- 투표
-
- 2016-01-16
show_user_profile
,edit_user_profile
,personal_options_update
및edit_user_profile_update
후크를 사용해야합니다.다음 코드를 사용하여 사용자 섹션에 추가 필드를 추가 할 수 있습니다.
사용자 수정 섹션에 추가 필드를 추가하기위한 코드 :
add_action( 'show_user_profile', 'extra_user_profile_fields' ); add_action( 'edit_user_profile', 'extra_user_profile_fields' ); function extra_user_profile_fields( $user ) { ?> <h3><?php _e("Extra profile information", "blank"); ?></h3> <table class="form-table"> <tr> <th><label for="address"><?php _e("Address"); ?></label></th> <td> <input type="text" name="address" id="address" value="<?php echo esc_attr( get_the_author_meta( 'address', $user->ID ) ); ?>" class="regular-text" /><br /> <span class="description"><?php _e("Please enter your address."); ?></span> </td> </tr> <tr> <th><label for="city"><?php _e("City"); ?></label></th> <td> <input type="text" name="city" id="city" value="<?php echo esc_attr( get_the_author_meta( 'city', $user->ID ) ); ?>" class="regular-text" /><br /> <span class="description"><?php _e("Please enter your city."); ?></span> </td> </tr> <tr> <th><label for="postalcode"><?php _e("Postal Code"); ?></label></th> <td> <input type="text" name="postalcode" id="postalcode" value="<?php echo esc_attr( get_the_author_meta( 'postalcode', $user->ID ) ); ?>" class="regular-text" /><br /> <span class="description"><?php _e("Please enter your postal code."); ?></span> </td> </tr> </table> <?php }
데이터베이스에 추가 필드 세부 정보를 저장하기위한 코드 :
add_action( 'personal_options_update', 'save_extra_user_profile_fields' ); add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' ); function save_extra_user_profile_fields( $user_id ) { if ( !current_user_can( 'edit_user', $user_id ) ) { return false; } update_user_meta( $user_id, 'address', $_POST['address'] ); update_user_meta( $user_id, 'city', $_POST['city'] ); update_user_meta( $user_id, 'postalcode', $_POST['postalcode'] ); }
도움이 될만한 주제에 대한 여러 블로그 게시물이 있습니다.
You need to use the
show_user_profile
,edit_user_profile
,personal_options_update
, andedit_user_profile_update
hooks.You can use the following code for adding additional fields in User section
Code for adding extra fields in Edit User Section:
add_action( 'show_user_profile', 'extra_user_profile_fields' ); add_action( 'edit_user_profile', 'extra_user_profile_fields' ); function extra_user_profile_fields( $user ) { ?> <h3><?php _e("Extra profile information", "blank"); ?></h3> <table class="form-table"> <tr> <th><label for="address"><?php _e("Address"); ?></label></th> <td> <input type="text" name="address" id="address" value="<?php echo esc_attr( get_the_author_meta( 'address', $user->ID ) ); ?>" class="regular-text" /><br /> <span class="description"><?php _e("Please enter your address."); ?></span> </td> </tr> <tr> <th><label for="city"><?php _e("City"); ?></label></th> <td> <input type="text" name="city" id="city" value="<?php echo esc_attr( get_the_author_meta( 'city', $user->ID ) ); ?>" class="regular-text" /><br /> <span class="description"><?php _e("Please enter your city."); ?></span> </td> </tr> <tr> <th><label for="postalcode"><?php _e("Postal Code"); ?></label></th> <td> <input type="text" name="postalcode" id="postalcode" value="<?php echo esc_attr( get_the_author_meta( 'postalcode', $user->ID ) ); ?>" class="regular-text" /><br /> <span class="description"><?php _e("Please enter your postal code."); ?></span> </td> </tr> </table> <?php }
Code for saving extra fields details in database:
add_action( 'personal_options_update', 'save_extra_user_profile_fields' ); add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' ); function save_extra_user_profile_fields( $user_id ) { if ( !current_user_can( 'edit_user', $user_id ) ) { return false; } update_user_meta( $user_id, 'address', $_POST['address'] ); update_user_meta( $user_id, 'city', $_POST['city'] ); update_user_meta( $user_id, 'postalcode', $_POST['postalcode'] ); }
There are also several blog posts available on the subject that might be helpful:
-
브라보는 훌륭하게 작동합니다.Bravo this works great.
- 0
- 2018-03-15
- AVEbrahimi
-
이것은 내 추가 필드의 데이터를 DB에 저장하지 않습니다.제안 해주세요.고마워.This isn't storing data from my extra fields in the DB. Suggestions please? Thx.
- 1
- 2019-07-03
- b_dubb
-
@b_dubb,코드를 공유해 주시겠습니까?그래서 확인하고 알려 드리겠습니다.@b_dubb, Can you please share your code? So i'll check and let you know.
- 0
- 2019-08-02
- Arpita Hunka
-
문제를 해결했지만 문의 해 주셔서 감사합니다.I have resolved my issue but thanks for reaching out.
- 0
- 2019-08-05
- b_dubb
-
보안 취약성을 방지하려면 여기에 임시 확인을 추가해야합니다.https://developer.wordpress.org/themes/theme-security/using-nonces/You should add nonce verification to this to avoid introducing security vulnerabilities. https://developer.wordpress.org/themes/theme-security/using-nonces/
- 1
- 2020-01-30
- squarecandy
-
- 2017-09-20
Advanced Custom Fields Pro 플러그인을 사용하면 코딩없이 사용자 프로필에 필드를 추가 할 수 있습니다..
The Advanced Custom Fields Pro plugin will allow you to add fields to user profiles without any coding.
-
프로 버전 만Only the pro version
- 3
- 2019-03-04
- I am the Most Stupid Person
-
PHP로이 작업을 수행하는 무료 방법이 있습니다.There are free ways of doing this with PHP.
- 2
- 2019-10-15
- Drmzindec
-
네-원한다면 ACF없이 PHP로 코드를 작성할 수 있습니다.내 경험으로는 100 줄 이상의 코드가 필요하며 임시 확인,양식의 HTML 작성 등에 대해 걱정할 필요가 있습니다. ACF에서 설정하는 데 5-10 분 걸리는 코딩에 몇 시간이 걸릴 수 있습니다.아마도 프로젝트에서 이미 ACF Pro를 사용하고 있는지에 달려 있습니다.Yep - definitely possible to code this in PHP without ACF if you prefer. My experience is that it takes 100+ lines of code and you need to worry about nonce verification, writing the HTML of the form, etc. Could take a few hours of coding vs. 5-10 min of setup in ACF. Probably depends on if you're using ACF Pro already on a project.
- 0
- 2019-10-15
- squarecandy
-
Wordpress는php에서 html 양식을 하드 코딩하지 않아도됩니다.두 번째 ACF는 핵심의 일부 여야합니다.코드로 필드를 정의하고 버전을 지정할 수도 있습니다.Wordpress should do this without asking you to hardcode html forms in php. I second ACF, it should be part of the core. You can also define fields with code and version it.
- 2
- 2020-01-30
- marek.m
-
- 2018-12-04
(
get_user_meta
대신)get_the_author_meta
를 사용하는 것이 좋습니다.function extra_user_profile_fields( $user ) { $meta = get_user_meta($user->ID, 'meta_key_name', false); }
You'd better use
get_user_meta
(instead ofget_the_author_meta
):function extra_user_profile_fields( $user ) { $meta = get_user_meta($user->ID, 'meta_key_name', false); }
-
둘 다 문제없이 작동합니다!both works with no problems!
- 0
- 2020-08-18
- Fernando Baltazar
나는 컴퓨터/코드 등을 잘 못합니다. 나는 등록 양식을 만드는 플러그인을 사용하고 그 양식에 국가,연령 그룹,성별 등을 추가했습니다.워드 프레스 사용자 항목에 등록자를 추가하는 옵션을 클릭합니다.하지만 시도해 보면 백엔드의 사용자 섹션에 사용자 이름과 이메일 만 표시됩니다. 사용자 섹션에 다른 필드를 표시하는 방법이 있습니까?
통계적 용도로 표시해야합니다.