In der Benutzerverwaltung stellt WordPress schon einige Felder für die Infopflege zur Verfügung. Leider treffen diese nicht immer die gewünschten oder benötigten Infos. Nachfolgend Infos, wie man diese Felder entfernt, ändert, neue hinzufügt und mit den Inhalten arbeiten kann.
Zunächst besteht die Möglichkeit die vorhandenen Felder umzubenennen.
Dazu folgenden Codeschnippsel in die functions.php
Eures Themes einfügen:
// Umbenennen der User Kontaktinfos AIM, YIM, JABBER
function wisch_rename_contactmethods($user_contactmethods) {
$user_contactmethods['aim'] = 'Skype';
$user_contactmethods['yim'] = 'ICQ';
$user_contactmethods['jabber'] = 'Sonstige';
return $user_contactmethods;
}
add_filter('user_contactmethods','wisch_rename_contactmethods');
Auch möglich ist es, Felder komplett zu entfernen:
// Entfernen der User Kontaktinfos AIM, YIM, JABBER
function wisch_unset_contactmethods($user_contactmethods) {
unset($user_contactmethods['aim']);
unset($user_contactmethods['yim']);
unset($user_contactmethods['jabber']);
return $user_contactmethods;
}
add_filter('user_contactmethods','wisch_unset_contactmethods');
Das Hinzufügen von weiteren Kontaktfeldern ist auch kein Problem:
// Hinzufügen der User Kontaktinfos TWITTER und FACEBOOK
function wisch_add_contactmethods($user_contactmethods) {
$user_contactmethods['twitter'] = 'Twitter';
$user_contactmethods['facebook'] = 'Facebook';
return $user_contactmethods;
}
add_filter('user_contactmethods','wisch_add_contactmethods');
Diese Eingriffe in die User-Kontaktinfos sind natürlich auch kombinierbar.
Abschließend nun noch Frage, wie diese Felder gelesen und geschrieben werden können…
Zum Auslesen kann der Template Tag the_author_meta genutzt werden. Dabei wird in diesem Beispiel die Info via wp_get_current_user zur aktuellen Benutzer-ID ausgelesen.
// User Kontaktinfo zeigen, falls vorhanden
$current_user = wp_get_current_user();
if( get_the_author_meta('twitter', $current_user->ID) ) {
echo the_author_meta('twitter', $current_user->ID);
}
Dabei wird die ID des aktuellen Users übergeben, alternativ kann auch z.B. mit get_userdata gearbeitet werden. Ist die ID nicht bekannt, kann man zur Ermittlung auf get user by zurückgreifen.
Bleibt noch die Frage, wie man die Feldhinhalte schreiben kann…
Über den Template-Tag wp_insert_user können nicht nur neue User angelegt, sondern bestehende auch aktualisiert werden:
// User Kontaktinfo aktualisieren
$current_user = wp_get_current_user();
if( get_the_author_meta('twitter', $current_user->ID) ) {
wp_insert_user( array ('ID' => $user_id, 'twitter' => 'http://twitter.com/#!/WiSchOnline') ) ;
}
Damit dürftet Ihr nun alles beisammen sein, um die Kontaktinfos der Benutzer anzupassen und zu nutzen… viel Erfolg damit.