WordPress自定义本地头像未显示在注释中

时间:2020-06-24 作者:David James Coxsell

我已经建立了自己的前端用户头像上传脚本。现在,头像在管理的用户部分和顶部面板中显示良好。然而,我似乎无法将它们显示在网站的评论和作者部分。

我使用下面的get\\u avatar代码

  add_filter (\'get_avatar\', function($avatar_html, $id_or_email, $size, $default, $alt) {
    $avatar = get_user_meta($id_or_email,\'avatar\',true);
    if( $avatar ) {
        return \'<img src="\'.$avatar.\'" width="96" height="96" alt="Avatar" class="img-fluid rounded-circle" id="wad_profile_avatar" />\';
    } else {
        return $avatar_html;
}
}, 10, 5);
有什么想法我可以让它显示在评论也?

1 个回复
SO网友:David James Coxsell

我找到了一个解决方案,现在我的前端阿凡达脚本已完全运行。

快乐的日子:)

我最终放弃了上面的代码并使用了这个。

add_filter( \'pre_get_avatar_data\', \'wad_avatar_meta\', 10, 2 );

function wad_avatar_meta( $args, $id_or_email ){
    $user_avatar_meta_key = \'avatar\';

    if( is_object( $id_or_email ) && isset( $id_or_email->comment_ID ) ){
        $id_or_email = get_comment( $id_or_email );
    }

    if( $id_or_email instanceof WP_Post ){
        $user_id = $id_or_email->post_author;
    }

    if( $id_or_email instanceof WP_Comment ){
        if( ! empty( $id_or_email->user_id ) ){
            $user_id = $id_or_email->user_id;
        } elseif( ! empty( $id_or_email->comment_author_email ) ){
            // If user_id not available, set as email address to handle below
            $id_or_email = $id_or_email->comment_author_email;
        }
    }

    if( is_numeric( $id_or_email ) ){
        $user_id = $id_or_email;
    } elseif( is_string( $id_or_email ) && strpos( $id_or_email, \'@\' ) ){
        $id_or_email = get_user_by( \'email\', $id_or_email );
    }

    if( $id_or_email instanceof WP_User ){
        $user_id = $id_or_email->ID;
    }

    if( ! empty( $user_id ) && is_numeric( $user_id ) ){

        $meta_val = maybe_unserialize( get_user_meta( $user_id, $user_avatar_meta_key, TRUE ) );

        if( ! empty( $meta_val ) ){

            if( is_array( $meta_val ) && ! empty( $meta_val[0] ) ){
                $meta_val = $meta_val[0];
            }

            if( filter_var( $meta_val, FILTER_VALIDATE_URL ) ){
                $args[\'url\'] = $meta_val;
            }

        }
    }

    return $args;
}

相关推荐

是否在Author.php中按自定义帖子类型显示用户的帖子计数?

我在“如何在管理员的用户列表中按自定义帖子类型显示用户帖子数量”链接中看到了代码,但我希望在作者中显示帖子数量。phpShowing User's Post Counts by Custom Post Type in the Admin's User List?在用户中显示。类似php的图像:但我希望显示的帖子和作者的图片一样重要。php,请帮帮我,谢谢。