有没有可能用自定义用户图像取代个人资料图像

时间:2018-11-19 作者:James Paul

是否有可能用自定义图像替换配置文件页面中的gravatar会话。这可以从他们的PC上传,而创建帐户则可以通过wordpress进行编码。

1 个回复
SO网友:ZecKa

是的,您可以使用ACF Pro来实现这一点

首先为用户图像创建一个字段(此处:tsm\\u local\\u avatar)

然后过滤get\\u gravatar函数:

<?php
/**
 * Use ACF image field as avatar
 * @author Mike Hemberger
 * @link http://thestizmedia.com/acf-pro-simple-local-avatars/
 * @uses ACF Pro image field (tested return value set as Array )
 */
add_filter(\'get_avatar\', \'tsm_acf_profile_avatar\', 10, 5);
function tsm_acf_profile_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
    $user = \'\';

    // Get user by id or email
    if ( is_numeric( $id_or_email ) ) {
        $id   = (int) $id_or_email;
        $user = get_user_by( \'id\' , $id );
    } elseif ( is_object( $id_or_email ) ) {
        if ( ! empty( $id_or_email->user_id ) ) {
            $id   = (int) $id_or_email->user_id;
            $user = get_user_by( \'id\' , $id );
        }
    } else {
        $user = get_user_by( \'email\', $id_or_email );
    }
    if ( ! $user ) {
        return $avatar;
    }
    // Get the user id
    $user_id = $user->ID;
    // Get the file id
    $image_id = get_user_meta($user_id, \'tsm_local_avatar\', true); // CHANGE TO YOUR FIELD NAME
    // Bail if we don\'t have a local avatar
    if ( ! $image_id ) {
        return $avatar;
    }
    // Get the file size
    $image_url  = wp_get_attachment_image_src( $image_id, \'thumbnail\' ); // Set image size by name
    // Get the file url
    $avatar_url = $image_url[0];
    // Get the img markup
    $avatar = \'<img alt="\' . $alt . \'" src="\' . $avatar_url . \'" class="avatar avatar-\' . $size . \'" height="\' . $size . \'" width="\' . $size . \'"/>\';
    // Return our new avatar
    return $avatar;
}
更多信息请点击此处:https://thestizmedia.com/acf-pro-simple-local-avatars/

结束

相关推荐

Adding Images into API

我正试图将特色图片添加到我的API中,但这是一种不同类型的帖子。http://example.com/wp-json/wp/v2/directory我一直在使用WP REST API控制器,但它没有显示图像选项。我也尝试使用“更好的RESTAPI特色图片”,但运气不好。这开始让我恼火了。