Wie füge ich ein Feld zum Benutzerprofil hinzu?Zum Beispiel Land, Alter usw.
-
-
Bitte versuchen Sie unsere Suche.Siefinden Dutzende von Beispielen.Please try our search. You will find dozens of examples.
- 5
- 2016-01-16
- fuxia
-
3 Antworten
- Stimmen
-
- 2016-01-16
Siemüssen die Hooks
show_user_profile
,edit_user_profile
,personal_options_update
undedit_user_profile_update
verwenden.Mit demfolgenden Code können Sie zusätzliche Felderim Benutzerbereich
hinzufügenCode zum Hinzufügen zusätzlicher Felderim Abschnitt Benutzerbearbeiten:
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 zum Speichern zusätzlicher Felddetailsin der Datenbank :
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'] ); }
Esgibt auchmehrere Blog-Beiträge zu diesem Thema,die hilfreich sein könnten:
- Hinzufügen zusätzlicher Felder zum WordPress-Benutzerprofil
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 dasfunktioniert super.Bravo this works great.
- 0
- 2018-03-15
- AVEbrahimi
-
Dadurch werden keine Daten ausmeinen zusätzlichen Feldernin der Datenbankgespeichert.Vorschlägebitte?Danke.This isn't storing data from my extra fields in the DB. Suggestions please? Thx.
- 1
- 2019-07-03
- b_dubb
-
@b_dubb,kannst dubitte deinen Codeteilen?Also werdeichnachsehen und dich wissen lassen.@b_dubb, Can you please share your code? So i'll check and let you know.
- 0
- 2019-08-02
- Arpita Hunka
-
Ich habemein Problemgelöst,aber danke,dass Sie sichgemeldet haben.I have resolved my issue but thanks for reaching out.
- 0
- 2019-08-05
- b_dubb
-
Sie sollteneine Nonce-Überprüfung hinzufügen,um Sicherheitslücken zu vermeiden.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
Mit dem Plugin Advanced Custom Fields Pro können Sie Benutzerprofile ohne Codierungmit Feldern versehen.
The Advanced Custom Fields Pro plugin will allow you to add fields to user profiles without any coding.
-
Nur die Pro-VersionOnly the pro version
- 3
- 2019-03-04
- I am the Most Stupid Person
-
Esgibt kostenlose Möglichkeiten,diesmit PHP zutun.There are free ways of doing this with PHP.
- 2
- 2019-10-15
- Drmzindec
-
Ja - definitivmöglich,diesin PHP ohne ACF zu codieren,wenn Siees vorziehen.Ich habe die Erfahrunggemacht,dassmehr als 100 Codezeilenerforderlich sind und Sie sich um die Überprüfung von Nonce,das Schreiben des HTML-Codes des Formulars usw. kümmernmüssen. Die Codierung kanneinige Stunden dauern,während die Einrichtungin ACF 5bis 10 Minuten dauert.Hängt wahrscheinlich davon ab,ob Sie ACF Probereitsin einem Projekt verwenden.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 sollte diestun,ohne Sie zubitten,HTML-Formularein PHPfest zu codieren.Ich zweite ACF,es sollte Teil des Kerns sein.Sie können Felder auchmit Code definieren und versionieren.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
Verwenden Siebesser
get_user_meta
(anstelle vonget_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); }
-
beidesfunktioniert ohneprobleme!both works with no problems!
- 0
- 2020-08-18
- Fernando Baltazar
Ichbin nicht sehrgutmit Computern/Codes usw. Ichbenutzeein Plugin,dasein Registrierungsformular zum Dingmacht,undin diesem Formular habeich Land,Altersgruppe,Geschlecht usw. hinzugefügt.Ich klicke auf die Option,mit der der Registrierer zum WordPress-Benutzer-Ding hinzugefügt wird.Aber wenniches versuche,werdennur der Benutzername und die E-Mail-Adresseim Benutzerbereichim Backend angezeigt. Gibteseine Möglichkeit,die anderen Felderim Benutzerbereich anzuzeigen?
Ichbrauche sie,um siefür statistische Zwecke anzuzeigen.