it-swarm.com.de

get_user_meta Kurzprofilabschnitt

Ok, also habe ich ein benutzerdefiniertes Feld in die Benutzer-Bearbeitungsprofilseite eingefügt, wo sie einen Link zu einer URL eines gewünschten Bildes hinzufügen können. Ich verwende dies derzeit für Mitwirkende und höher, aber ich habe auch ein kleines Profilfeld auf meiner Website, das einen Benutzeravatar von Gravatar abruft. Ich habe den Code von vorhin verwendet, aber ihn geändert, um den aktuell angemeldeten Benutzer authorpic oder den Gravatar zu erhalten. Siehe Code unten

$profilepic = get_user_meta('author_pic');
$imgtagbeg = ('<img style="height:52px; width:52px" src="');
$imgtagend = ('"/>');
    if ($profilepic)
        echo $imgtagbeg,$profilepic,$imgtagend; 
    else
        echo get_avatar( $user_email, '52', $default = 'http://www.gravatar.com/avatar.php?gravatar_id=$md5&size=80&default=$default' );

Was ich tun möchte ist, wenn der aktuell angemeldete Benutzer einen Avatar in seinem Profilfeld verlinkt hat, dann benutze diesen anstelle von Gravatar. Wenn der Autor jedoch über ein Gravatar verfügt und das Feld im Profil leer gelassen hat, verwenden Sie dieses oder verwenden Sie das Standard-Gravatar

Update: Was ist mit so etwas?

$userpic = '<img src="link/to/author_pics/$userid.png"';
    if ($userpic)
        echo $userpic;
    else
        echo get_avatar( $user_email, '52', $default = 'http://www.gravatar.com/avatar.php?gravatar_id=$md5&size=80&default=$default' );

Anstatt sich auf ein Benutzerfeld zu verlassen, laden Sie einfach ein Bild in ein Verzeichnis hoch und verwenden dort die Benutzer-ID als Dateinamen. Funktioniert das.

UPDATE 2:

$userpiccur = wp_get_current_user();
$userpicloc = 'http://avatars.mydomain.com/';
$userpictyp = '.png';
$userpicurl = $userpicloc . $userpiccur->user_login . $userpictyp;
$header_response = get_headers($userpicurl, 1);
$userpicbeg = '<img style="height:52px; width:52px" src="http://avatars.mydomain.com/';
$userpicend = '.png"/>';
if ( strpos( $header_response[0], "404" ) !== false )
    echo $userpicbeg,$userpiccur->user_login,$userpicend;
else
    echo get_avatar( $user_email, '52', $default = 'http://www.gravatar.com/avatar.php?gravatar_id=$md5&size=80&default=$default' );
1
xLRDxREVENGEx

Ok, also habe ich es so gemacht, wie ich es will. Jetzt muss ich nur noch herausfinden, ob ein Benutzer ein eigenes Bild hochladen kann oder nicht.

<?
$userpiccur = wp_get_current_user();
$userpicloc = 'http://avatars.mydomain.com/';
$userpictyp = '.png';
$userpicurl = $userpicloc.$userpiccur->user_login.$userpictyp;
$userpicbeg = '<img class="avatar avatar-52 photo" style="height:52px; width:52px" src="';
$userpicend = '"/>';
if (@fopen($userpicurl, "r"))
    echo  $userpicbeg,$userpicurl,$userpicend;
else
    echo get_avatar( $user_email, '52', $default = 'http://www.gravatar.com/avatar.php?gravatar_id=$md5&size=80&default=$default' );
?>
0
xLRDxREVENGEx

Vom Kern:

function get_user_meta($user_id, $key, $single = false) {
    return get_metadata('user', $user_id, $key, $single);
}

Übergeben Sie als erstes Argument die Benutzer-ID, als zweites den Schlüssel 'author_pic' und als drittes die Variable TRUE (um einen String-Wert zurückzuerhalten).

1
fuxia

Ihr Code im Bearbeitungsteil der Frage sollte funktionieren, und auch Ihr erster Teil, aber Sie müssen die Benutzer-ID zur Funktion get_user_meta () hinzufügen Ihr erster Code, aber ändern Sie die erste Zeile in diesen:

$profilepic = get_user_meta($user_id,'author_pic',true);

und stellen Sie sicher, dass $ user_id die tatsächliche ID des Benutzers enthält.

1
Bainternet