워드프레스에서 모든 사용자의 '공개적으로 표시할 이름'을 변경하는 방법

워드프레스에서 기존의 모든 사용자의 표시 이름(공개적으로 표시할 이름)을 변경하고 싶은 경우가 있습니다. 이와 관련하여 검색해보면 user_register 후크(액션)를 사용하여 변경하는 방법이 많이 소개되고 있지만, 테스트해보니 잘 작동하지 않았습니다.

워드프레스에서 모든 사용자의 '공개적으로 표시할 이름'을 변경하기

대신 WordPress Change Default Display Name Publicy As First Name Last Name for all existing users에서 소개하는 코드를 사용하니 원하는 대로 각 사용자의 '표시 이름'이 일괄적으로 변경되었습니다.

// Change default display name publicly as to Last Name and First Name for all users
add_action ('admin_head','make_display_name_f_name_last_name');
function make_display_name_f_name_last_name(){
$users = get_users(array('fields'=>'all'));
foreach($users as $user){
$user = get_userdata($user->ID);
$display_name = $user->last_name; . $user->first_name;
if($display_name!=' ') wp_update_user( array ('ID' => $user->ID, 'display_name' => $display_name) );
else wp_update_user( array ('ID' => $user->ID, 'display_name' => $user->display_login) );
if($user->display_name == '')
wp_update_user( array ('ID' => $user->ID, 'display_name' => $user->display_login) );
}
}

위의 코드를 적용하면 사용자의 표시 이름이 "홍길동"처럼 "성+이름"이 표시됩니다.

원하는 경우 표시 이름을 이메일 주소로 변경하는 것도 가능합니다. 하지만 이메일 주소를 그대로 노출할 경우 개인 프라이버시 문제가 발생할 수 있고 스패머의 표적이 될 수 있기 때문에 이메일의 일부 필드를 별표로 블라인드 처리하여 표시할 수 있습니다. (예: honggildong@naver.com 대신 honggild***@***er.com으로 표시)

이 경우 다음과 같은 코드를 사용 중인 테마의 함수 파일에 추가하면 공개적으로 표시할 이름이 "honggild***@***er.com"과 같은 형식으로 표시됩니다.

// Sets the user's display name (always) to email address with some characters are hidden with asterisks, when it's available:
add_action ('admin_head','make_display_name_email_address');
function make_display_name_email_address(){
$users = get_users(array('fields'=>'all'));
foreach($users as $user){
$user = get_userdata($user->ID);
$em = $user->user_email;
$mail_segments = explode("@", $em);
$mail_segments[0] = substr($mail_segments[0], 0, -3) . "***";
$mail_segments[1] = "***" . substr($mail_segments[1], 3);
$new_email = implode("@", $mail_segments);
$display_name = $new_email;
if($display_name!=' ') wp_update_user( array ('ID' => $user->ID, 'display_name' => $display_name) );
else wp_update_user( array ('ID' => $user->ID, 'display_name' => $user->display_login) );
if($user->display_name == '')
wp_update_user( array ('ID' => $user->ID, 'display_name' => $user->display_login) );
}
}

이메일 주소는 필수이므로 위의 코드에서 아래의 조건문은 불필요할 것 같습니다.

위의 코드를 추가하여 테스트해보면 워드프레스 알림판 > 사용자 > 나의 프로필에서 "공개적으로 표시할 이름"이 "honggild***@***er.com"처럼 일부 글자가 별표로 처리된 이메일 주소로 바뀌어 표시됩니다.

워드프레스 사용자 표시 이름 변경하기

그리고 글 작성자의 이름도 아래 그림과 같이 이메일 주소로 표시됩니다.

워드프레스 사용자 표시 이름 변경

참고:

일부 글에 제휴 링크가 포함될 수 있으며 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

댓글 남기기

* 이메일 정보는 공개되지 않습니다.