ACF와 코드를 이용해 별도 플러그인 없이 로컬 아바타를 만드는 방법입니다.
1) ACF 이미지 필드
코드를 추가하기 전에 반드시 이미지 필드를 먼저 만듭니다. 그렇지 않으면 에러가 납니다.
ACF에서 임의의 이름(예: 프로필 이미지)라른 필드 그룹을 만들고, 이미지 필드를 추가합니다. 여기서는 ‘local_avatar’라는 필드이름을 사용했습니다.
2) PHP 코드 추가
<?php
add_filter('get_avatar', 'wpsqure_acf_local_avatar', 100000, 5);
function wpsqure_acf_local_avatar( $avatar, $user_idx, $size, $default, $alt ) {
$user = '';
// $user_idx 값으로 사용자 가져오기
if ( is_numeric( $user_idx ) ) {
$id = (int) $user_idx;
$user = get_user_by( 'id' , $id );
} elseif ( is_object( $user_idx ) ) {
if ( ! empty( $user_idx->user_id ) ) {
$id = (int) $user_idx->user_id;
$user = get_user_by( 'id' , $id );
}
} else {
$user = get_user_by( 'email', $user_idx );
}
if ( ! $user ) {
return $avatar;
}
$user_id = $user->ID;
// 저장된 이미지 ID 값 가져오기, 'wpsqure_local_avatar' 값은 본인이 지정한 필드 이름 으로 변경
$image_id = get_user_meta($user_id, 'local_avatar', true);
// Bail if we don't have a local avatar
if ( ! $image_id ) {
return $avatar;
}
// 아바타 이미지 가져오기
$image_url = wp_get_attachment_image_src( $image_id, 'thumbnail' );
// Get the file url
$avatar_url = $image_url[0];
// 아바타 이미지 마크업
$avatar = '<img alt="' . $alt . '" src="' . $avatar_url . '" class="gravatar avatar avatar-' . $size . '" height="' . $size . '" width="' . $size . '"/>';
return $avatar;
}
Code language: PHP (php)
3) 테스트

실제로 프로필 편집에서 해당 필드에 이미지를 업로드하고 정상 동작하는 지 확인합니다.
Leave a Comment