Wer die Möglichkeiten des beliebten Content-Management-Systems WordPress vollends ausnutzt, macht sicherlich auch von der Nutzerverwaltung Gebrauch. WordPress bietet eine ideale Möglichkeit, Profile mehrerer Arten anzulegen und diesen unterschiedliche Rechte zuzuweisen. Zu jedem angelegten Profil gehören auch eine Reihe verschiedener Felder, die sich im Backend der WordPress-Installation befüllen lassen. Dazu zählen neben grundlegenden Informationen wie Vor- und Nachname des Benutzers auch Nutzernamen bzw. URLs sozialer Netzwerke oder eine kleine Biographie.

Diese Felder lassen sich selbstverständlich nützlich auf der eigenen WordPress-Website einbinden. Die Biographie meines Benutzerkontos der Seitenhelden findet sich so beispielsweise unter jedem meiner Beiträge.

Individuelle Felder zum Profil hinzufügen

Durch individuelle Anwendungsfälle werden nicht selten jedoch Felder benötigt, die WordPress in der Grundversion nicht bietet. So wünschte ein Kunde aus meinem Agentur-Alltag beispielsweise die Möglichkeit, Benutzern zusätzlich zur normalen User-ID eine individuelle Nummer zuweisen zu können. Diese soll dann im Anschluss genutzt werden, um bestimmte andere Inhalte anzeigen zu können.

Was für Laien kompliziert klingen mag, ist mit passenden WordPress-Kenntnissen jedoch schnell gelöst. Die Möglichkeit über ein zusätzliches WordPress-Plugin, das das Hinzufügen weiterer Felder ermöglicht, mag für Anfänger zwar komfortabler sein, ist für mich persönlich jedoch nicht die erste Wahl. Eine einfache Erweiterung der functions.php genügt schließlich, um das Benutzerprofil um ein weiteres Feld zu erweitern.

Neues Feld definieren

add_action( 'personal_options_update', 'my_save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' );

function my_save_extra_profile_fields( $user_id ) {

if ( !current_user_can( 'edit_user', $user_id ) )
    return false;

/* In der nachfolgenden Zeile wird das Feld definiert.
update_usermeta( $user_id, 'telefon', $_POST['telefon'] );
}

Der erste Schritt ist es, WordPress das gewünschte Feld beizubringen. Im vorherigen Code-Schnipsel, das wie zuvor erwähnt in die functions.php des WordPress-Templates einzufügen ist, deklarieren wir ein individuelles Feld telefon, in das wir später die Telefonnummer des Benutzers eintragen möchten.

Eingabefeld im Backend hinzufügen

add_action( 'show_user_profile', 'my_show_extra_profile_fields' );
add_action( 'edit_user_profile', 'my_show_extra_profile_fields' );
function my_show_extra_profile_fields( $user ) { ?>
<h3>Telefonnummer</h3>
    <table class="form-table">
<tr>
            <th><label for="telefon">Telefonnummer</label></th>
            <td>
            <input type="text" name="telefon" id="telefon" value="<?php echo esc_attr( get_the_author_meta( 'telefon', $user->ID ) ); ?>" class="regular-text" /><br />
                <span class="description">Hier Telefonnummer eintragen.</span>
            </td>
</tr>
</table>
<?php }

Damit dem jeweiligen Nutzer auch die passende Information im nun definierten Feld hinzugefügt werden kann, müssen wir auch dies in der functions.php genau definieren. Ist der vorherige Code-Schnipsel ebenfalls eingefügt worden, lässt sich nun den Profileinstellungen das Feld mit der Telefonnummer befüllen.

Felder auf der Website ausgeben

Ganz besonders nützlich können die in den Feldern abgelegten Benutzerinformationen werden, wenn sie entsprechend im Template ausgegeben werden. Bei der Telefonnummer kann dies beispielsweise in der Autorenbox am unteren Ende eines jeden Beitrags geschehen. In einem Unternehmensblog kann so also zum Beispiel die direkte Telefonnummer des passenden Ansprechpartners zum Artikel präsentiert werden.

Auch hierfür bietet WordPress selbstverständlich eine Lösung. In der passenden Template-Datei lässt sich die Information mit etwas WordPress- bzw. PHP-Kenntnissen einfach ausgeben. Die WordPress-Dokumentation erklärt, wie es genau geht.