WordPress Benutzerprofil: Benutzerdefinierte Felder ohne Plugin hinzufügen.

Benutzerdefinierte Felder für weitere Informationen zu den Benutzerprofilen in WordPress hinzufügen? Ohne Plugin! Es gibt 2 Möglichkeiten. Einerseits weitere Felder im Bereich Kontaktangaben hinzufügen oder andererseits einen kompletten Bereich, beispielsweise Weitere Informationen genannt, selbst erstellen.

Möglichkeit 1: weitere Felder zum Bereich Kontaktangaben

Die schnellste und einfachste Methode. Auch wenn diese zusätzlichen Felder im Backend unter Kontaktangaben angezeigt werden, müssen sie nicht zwangsläufig für Kontaktangaben genutzt werden. Auch ein Input-Feld ist nicht zwingend notwendig. Auch Textboxen, Datums- oder Farbwahl wäre denkbar.

Folgender PHP-Code ist klein, leicht anpassbar und wird in die functions.php kopiert und dort den eigenen Anforderungen angepasst.

function modify_contact_methods($profile_fields) {
 
// Add new fields
$profile_fields['twitter'] = 'Twitter Username';
$profile_fields['facebook'] = 'Facebook URL';
$profile_fields['gplus'] = 'Google+ URL';
 
return $profile_fields;
}
add_filter('user_contactmethods', 'modify_contact_methods');

Ausgabe der gespeicherten Informationen

Alle Felder sind nun über
get_the_author_meta();
ansprechbar. Für das Feld twitter wäre es also:
get_the_author_meta('twitter');

Möglichkeit 2: einen eigenen Bereich erstellen

Vom Code her etwas umfangreicher, aber immernoch übersichtlich. Dieses Beispiel erstellt einen Bereich namens „Informations for seoite“ und erstellt 3 Felder, um Angaben zu sozialen Profilen zu machen. Dies kann natürlich leicht angepasst werden. Der Code ist sehr leicht und selbsterklärend. Bei Fragen, bitte ich um Kommentare oder E-Mails.

Der Code wurde in Englisch gehalten und zur Übersetzung vorbereitet. Arbeitet man im Team und/oder soll eine mehrsprachigkeit umgesetzt werden oder wenn man einfach nur sauber arbeiten will, empfiehlt sich diese Vorgehensweise. Einheitlich im Code und übersetzt über eine entsprechende Sprachdatei.

In die functions.php kopieren und den eigenen Anforderungen anpassen:

/**
* More informations on user profiles
*/
 
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("Informations for seoite", "blank"); ?></h3>
 
<table class="form-table">
<tr>
<th><label for="fbfanpage"><?php _e("Facebook Fanpage"); ?></th>
<td>
<input type="text" name="fbfanpage" id="fbfanpage" value="<?php echo esc_attr( get_the_author_meta( 'fbfanpage', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e("Please enter your Facebook Fanpage like https://facebook.com/example."); ?></span>
</td>
</tr>
<tr>
<th><label for=""twitterusername"><?php _e("Twitter username"); ?></label></th>
<td>
<input type="text" name="twitterusername" id="twitterusername" value="<?php echo esc_attr( get_the_author_meta( 'twitterusername', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e("Please enter your Twitter username without @."); ?></span>
</td>
</tr>
<tr>
<th><label for="pinterestusername"><?php _e("Pinterest username"); ?></label></th>
<td>
<input type="text" name="pinterestusername" id="pinterestusername" value="<?php echo esc_attr( get_the_author_meta( 'pinterestusername', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e("Please enter your Pinterest username."); ?></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, 'fbfanpage', $_POST['fbfanpage'] );
update_user_meta( $user_id, 'twitterusername', $_POST['twitterusername'] );
update_user_meta( $user_id, 'pinterestusername', $_POST['pinterestusername'] );
}

Ausgabe der gespeicherten Informationen

Wie auch bei der ersten Methode ist die Ausgabe kinderleicht und exakt gleich:
<?php get_the_author_meta(); ?>
Für den Benutzernamen von twitter wäre das dann:
<?php get_the_author_meta('twitterusername'); ?>

0 Kommentare

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.