set a user-meta key as avatar

时间:2020-11-28 作者:mr. m0hmam4d

我有一个名为“meta kay”的用户;阿凡达;;此值包含用户上载的图像的URL。如何将此元值设置为用户化身?我使用此代码,但不工作

add_filter( \'get_avatar\', \'slug_get_avatar\', 10, 5 );
function slug_get_avatar( $avatar, $id_or_email, $size, $default, $alt ) {

    //If is email, try and find user ID
    if( ! is_numeric( $id_or_email ) && is_email( $id_or_email ) ){
        $user  =  get_user_by( \'email\', $id_or_email );
        if( $user ){
            $id_or_email = $user->ID;
        }
    }

    //if not user ID, return
    if( ! is_numeric( $id_or_email ) ){
        return $avatar;
    }

    //Find URL of saved avatar in user meta
    $saved = get_user_meta( $id_or_email, \'avatar\', true );
    //check if it is a URL
    if( filter_var( $saved, FILTER_VALIDATE_URL ) ) {
        //return saved image
        return sprintf( \'<img src="%" alt="%" />\', esc_url( $saved ), esc_attr( $alt ) );
    }

    //return normal
    return $avatar;

}

2 个回复
SO网友:tiago calado

<?php
$id = get_current_user_id(); // this is for the current user, for other user just change this variable to the user id intended
$link = get_user_meta( $id, \'avatar\', true ); ?>
<img src="<?php echo $link ?>" alt="">
这就是你的答案,但如果你想理解它,就继续读下去吧!。。(只是在写了下面的所有内容后,我才发现您的meta\\u密钥的名称是“avatar”,无论如何……)

这是我的wp\\u usermeta表的10行;

mysql> select * from wp_usermeta limit 5, 10;
+----------+---------+-----------------------+---------------------------------+
| umeta_id | user_id | meta_key              | meta_value                      |
+----------+---------+-----------------------+---------------------------------+
|        6 |       1 | syntax_highlighting   | true                            |
|        7 |       1 | comment_shortcuts     | false                           |
|        8 |       1 | admin_color           | light                           |
|        9 |       1 | use_ssl               | 0                               |
|       10 |       1 | show_admin_bar_front  | false                           |
|       11 |       1 | locale                |                                 |
|       12 |       1 | wp_capabilities       | a:1:{s:13:"administrator";b:1;} |
|       13 |       1 | wp_user_level         | 10                              |
|       14 |       1 | dismissed_wp_pointers | theme_editor_notice             |
|       15 |       1 | show_welcome_panel    | 0                               |
+----------+---------+-----------------------+---------------------------------+
10 rows in set (0.00 sec)

如果我想要我的admin\\u颜色(第三行),我可以运行以下代码:

$link = get_user_meta( 1, \'admin_color\', true );
echo \'<p>\'. $link . \'</p>\';

这张照片上写着“我”;“浅色”;,meta\\u值,链接路径将位于其中。第一个参数是user\\u id,第二个参数是meta\\u键,第三个参数是表示如果只需要一个或多个结果,默认值为false,这意味着只有一个结果,在本例中,true意味着与表中的结果一样多。

这意味着您可以使用此函数,但您需要知道meta\\u键值才能获得meta\\u值,因为用户id有很多meta\\u键,并且meta\\u键是唯一的。要知道meta\\u密钥,您可以使用此代码,对其进行分析,然后将user\\u id更改为您的user\\u id,将meta\\u密钥更改为您的meta密钥,您将获得链接路径。

$id = get_current_user_id();
echo \'My id is \'.$id;
$link = get_user_meta( $id, \'\', true );
echo \'<pre>\';
print_r($link);
现在,如果有,只需使用第一个带有适当参数的代码

<?php
$id = get_current_user_id();
$link = get_user_meta( $id, \'your_meta_key_target\', true ); ?>
<img src="<?php echo $link ?>" alt="">

SO网友:mr. m0hmam4d

tnx但必须检查这些条件如果用户有头像(来自用户面板中的上载)回显头像img;否则echo会解散avatar wordpress。

相关推荐

添加用户角色:预先保存在User-Meta中[已解决]

我在用户注册后添加一个操作,以根据users meta\\u值添加另一个用户角色。使用时:add_action(\'um_after_save_registration_details\', \'custom_after_new_user_register\', 10, 2); function custom_after_new_user_register($user_id) { $user = get_user_by(\'id\', $user_id); if