J'aimerais (en php) afficher l'avatar et la bio (description) d'un utilisateur donné ainsi que certains médias sociaux correspondant (en fonction des champs d'informations de son profil). Par exemple, à la page 1, affichez les liens de l’image, de la description (bio) et des réseaux sociaux de l’utilisateur Walt Whitman (numéro d’utilisateur 9999), indépendamment de celui qui a écrit la page ou de celui qui est connecté pour la lire.
Je peux afficher l'avatar:
<?php echo get_avatar( '[email protected]', 32 ); ?>
J'ai essayé plusieurs choses, mais elles ne fonctionnent pas. Je reçois soit un affichage complet de toutes les méta, soit une erreur fatale (diverses erreurs fatales telles que 'must be string', etc.).
<?php the_user_meta( 'description' ); ?>
ou
<?php $userdata = get_user_meta( 9999 ); ?><?php echo $userdata['description']; ?>
Si j'utilise
<?php $user = wp_get_current_user( 9999 ); if ( $user->exists() ) // is_user_logged_in() is a wrapper for this line $userdata = get_user_meta( $user->data->ID ); ?><pre><?php var_dump( $userdata ); ?></pre><?php echo $userdata['description'] ; ?>
J'ai une erreur fatale.
Vous pouvez utiliser
get_currentuserinfo()
( auquel wp_get_current_user()
est une fonction wrapper to ) ou
get_current_user_id()
qui utilise wp_get_current_user()
pour obtenir l'ID utilisateur actuellement connecté.
D'une manière ou d'une autre, vous devez vous assurer que vous avez un utilisateur connecté ( l'ID utilisateur n'est pas 0 ) avant d'essayer d'obtenir les métadonnées de l'utilisateur. de la db.
Une fois que vous avez l'ID utilisateur, vous pouvez utiliser get_user_meta()
pour renvoyer les informations de l'utilisateur à partir de la base de données.
$user = wp_get_current_user();
if ( $user->exists() ) { // is_user_logged_in() is a wrapper for this line
$userdata = get_user_meta( $user->data->ID );
?><pre><?php var_dump( $userdata ); ?></pre><?php
}
C'est très basique PHP. Voici ce qui est retourné par
$userdata = get_user_meta( 1 );
?><pre><?php var_dump( $userdata ); ?></pre><?php
La var_dump()
array(29) {
["first_name"]=>
array(1) {
[0]=>
string(6) "Pieter"
}
["last_name"]=>
array(1) {
[0]=>
string(6) "Goosen"
}
["nickname"]=>
array(1) {
[0]=>
string(12) "pietergoosen"
}
["description"]=>
array(1) {
[0]=>
string(349) "My naam is Pieter Goosen BLAH BLAH BLAH"
}
["rich_editing"]=>
array(1) {
[0]=>
string(4) "true"
}
["comment_shortcuts"]=>
array(1) {
[0]=>
string(5) "false"
}
["admin_color"]=>
array(1) {
[0]=>
string(5) "fresh"
}
["use_ssl"]=>
array(1) {
[0]=>
string(1) "0"
}
["show_admin_bar_front"]=>
array(1) {
[0]=>
string(5) "false"
}
["wp_capabilities"]=>
array(1) {
[0]=>
string(31) "a:1:{s:13:"administrator";b:1;}"
}
["wp_user_level"]=>
array(1) {
[0]=>
string(2) "10"
}
["dismissed_wp_pointers"]=>
array(1) {
[0]=>
string(143) "wp330_toolbar,wp330_saving_widgets,wp340_choose_image_from_library,wp340_customize_current_theme_link,wp350_media,wp360_revisions,wp390_widgets"
}
["show_welcome_panel"]=>
array(1) {
[0]=>
string(1) "0"
}
["wp_user-settings"]=>
array(1) {
[0]=>
string(120) "libraryContent=browse&imgsize=full&align=right&editor=html&hidetb=1&mfold=o&unfold=1&urlbutton=post&posts_list_mode=list"
}
["wp_user-settings-time"]=>
array(1) {
[0]=>
string(10) "1447257892"
}
["wp_dashboard_quick_press_last_post_id"]=>
array(1) {
[0]=>
string(3) "463"
}
["Twitter"]=>
array(1) {
[0]=>
string(0) ""
}
["facebook"]=>
array(1) {
[0]=>
string(15) "pietergoosencom"
}
["managenav-menuscolumnshidden"]=>
array(1) {
[0]=>
string(89) "a:4:{i:0;s:11:"link-target";i:1;s:11:"css-classes";i:2;s:3:"xfn";i:3;s:11:"description";}"
}
["metaboxhidden_nav-menus"]=>
array(1) {
[0]=>
string(102) "a:4:{i:0;s:8:"add-post";i:1;s:14:"add-informasie";i:2;s:12:"add-post_tag";i:3;s:15:"add-post_format";}"
}
["nav_menu_recently_edited"]=>
array(1) {
[0]=>
string(3) "130"
}
["closedpostboxes_page"]=>
array(1) {
[0]=>
string(6) "a:0:{}"
}
["metaboxhidden_page"]=>
array(1) {
[0]=>
string(94) "a:4:{i:0;s:10:"postcustom";i:1;s:16:"commentstatusdiv";i:2;s:7:"slugdiv";i:3;s:9:"authordiv";}"
}
["closedpostboxes_post"]=>
array(1) {
[0]=>
string(6) "a:0:{}"
}
["metaboxhidden_post"]=>
array(1) {
[0]=>
string(6) "a:0:{}"
}
["closedpostboxes_positions"]=>
array(1) {
[0]=>
string(6) "a:0:{}"
}
["metaboxhidden_positions"]=>
array(1) {
[0]=>
string(6) "a:0:{}"
}
["rtladminbar"]=>
array(1) {
[0]=>
string(3) "ltr"
}
["session_tokens"]=>
array(1) {
[0]=>
string(285) "a:1:{s:64:"fa12574e7a42af2a8944d764c21bda64a5a5ee4572b1fbceb027d8b4af5afcd3";a:4:{s:10:"expiration";i:1448467488;s:2:"ip";s:3:"::1";s:2:"ua";s:108:"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36";s:5:"login";i:1447257888;}}"
}
}
Donc, si vous avez besoin d’afficher la description, vous pouvez faire
echo $userdata['description'][0];
Pour apprendre à référencer des valeurs dans un tableau, vous devez réellement apprendre à comprendre le fonctionnement des tableaux et à les référencer.
Ce qui suit est un cas d'utilisation exact
$walt_id = 1; // Make sure you have the correct ID here
$userdata = get_user_meta( $walt_id );
echo $userdata['description'][0];
Si cela ne fonctionne pas, vous avez un problème grave quelque part que vous devez résoudre comme je l’ai dit dans des commentaires.
Vous pouvez utiliser _get_user_by
_ pour obtenir leur ID utilisateur à partir de l'adresse e-mail, car il semble que ce soit les données que vous avez disponibles ci-dessus. Vous pouvez ensuite utiliser le get_userdata
ou get_user_meta
à partir de cet ID utilisateur pour extraire tous leurs autres champs méta.
_$user = get_user_by( 'email', '[email protected]' );
$userdata = get_userdata( $user->ID );
$first_name = $userdata-> first_name;
_
(Je suis l'op.)
Deux options pour résoudre ce problème. Ceux-ci peuvent être utilisés pour afficher des informations pour les utilisateurs enregistrés sur votre site Web. Je vais vous montrer comment afficher un OR deux (c.-à-d. Plusieurs) choses:
1) Pieter Goosen way (J'ai vérifié sa réponse comme correcte ci-dessus - merci encore Pieter) (Personnes, vous devez entrer dans le profil de l'utilisateur et obtenir son numéro d'utilisateur. Utilisez ce numéro au lieu de 9999 .
Une chose:
<?php $walt_id = 9999; // Make sure you have the correct ID here
$userdata = get_user_meta( $walt_id );
echo $userdata['description'][0];
?>
Plus qu'une chose:
<?php $walt_id = 9999; // Make sure you have the correct ID here
$userdata = get_user_meta( $walt_id );
echo $userdata['description'][0];
echo $userdata['first_name'][0];
?>
2) stephencottontail way:
Une chose:
<?php the_author_meta( 'user_description', 9999 ); ?> </br>
Plus qu'une chose:
<?php the_author_meta( 'user_description', 9999 ); ?> </br>
<?php the_author_meta( 'first_name', 9999 ); ?>