it-swarm.com.de

Wie fügen Sie Benutzerdaten eine benutzerdefinierte Option hinzu?

Ich möchte meinen Nutzern Avatare hinzufügen. Ich habe eine begrenzte Gruppe auf einer Site, an der ich arbeite. Das Hochladen ist kein wirkliches Problem. Wir können die Bilder einfach auf den Server stellen und URLs verwenden, um unsere Avatare festzulegen. (Nur ungefähr 5 Personen können tatsächlich Beiträge verfassen.) Das heißt, wie würde ich der Benutzerseite ein Feld hinzufügen, das sie mit einer Bild-URL ausfüllen können, die dann später abgerufen werden kann. Ich weiß, dass Sie Benutzerdaten über die Funktion the_author_meta(); abrufen können, aber wie füge ich ein benutzerdefiniertes Benutzerfeld hinzu, das ausgefüllt und in die Datenbank gestellt werden kann, die dem Benutzer zugeordnet ist?

Oder wäre es einfach besser, etwas zu verwenden, das bereits existiert, wie zum Beispiel das Feld aim, da keiner von uns dies ausfüllen wird.

3
Jem

Um der Profil-/Benutzer-Bearbeitungsseite ein Feld hinzuzufügen, müssen Sie den Hook edit_user_profile und den Hook show_user_profile verwenden.

add_action( 'show_user_profile', 'my_extra_user_fields' );
add_action( 'edit_user_profile', 'my_extra_user_fields' );
function my_extra_user_fields( $user ) 
{ ?>
    <h3>User avatar</h3>

    <table class="form-table">
        <tr>
            <th><label for="user_avatar">User avatar</label></th>
            <td>
                <input id="user_avatar" name="user_avatar" type="text" value="
                    <?php $user_avatar = get_the_author_meta( 'user_avatar', $user->ID ); 
                        echo $user_avatar ? $user_avatar : '';?>" />
                <span class="description"><?php _e("Please enter Avatar URL."); ?></span>
            </td>
        </tr>
    </table>
<?php }

um dieses Feld zu speichern, müssen Sie personal_options_update hook und edit_user_profile_update hook verwenden.

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

function save_my_extra_user_fields( $user_id ) 
{
    if ( !current_user_can( 'edit_user', $user_id ) ) { return false; }else{

        if(isset($_POST['user_avatar']) && $_POST['user_avatar'] != ""){
            update_usermeta( $user_id, 'user_avatar', $_POST['user_avatar'] );
        }
    }
}

und wie Sie bereits wissen, können Sie diese Daten mit the_author_meta() oder get_user_meta() löschen.

1
Bainternet