회원 게시글 업로드 시 Username -> Nickname 변경하기
게시글 작성자 이름 닉네임 변경하기: 코스모스 팜의 회원가입 관리와 Kboard 게시판을 사용해서 게시판까지 만들었습니다. 아직 코스모스 팜을 통해 로그인 및 회원가입 페이지를 만들지 않고, Kboard 설치를 하지 않았다면 아래 바로가기 버튼을 클릭해서 설치를 하고 와주세요.
🚀 코스모스 팜 설치하기, 로그인, 회원가입 페이지 만들기
이전 과정을 성공적으로 따라오셨으면 사실 기본적인 설치는 모두 완료되었습니다. 이제 회원가입을 한 유저 계정을 통해 게시글을 올려보는 테스트를 해보겠습니다. 회원가입 시 Username 과 Nickname 을 다르게 작성해주세요.
저는 가입 시 Username : ABC, Nickname : aaa 로 만들었습니다. 가입을 하셨으면 게시글을 하나 작성해서 업로드 해주세요.
Author(작성자)에 username ‘ABC’ 가 나오는 오류
아래에 테스트 게시글을 작성했더니 Author(작성자) 부분에 Nickname ‘aaa’가 아니라 Username ‘ABC’가 나오는 문제가 발생합니다. 보통 커뮤니티 게시글 작성 시 닉네임으로 작성되도록 하기 때문에 여기서 게시글 업로드 시 nickname 으로 나오도록 수정하겠습니다.
유저네임 -> 닉네임 변경할 때 주의사항
앞에서 회원가입 시 WP-members 플러그인에서 닉네임 필드를 새로 추가할 때 ‘nickname’으로 만들었습니다. 이 때 필드 이름을 대소문자 구분까지 확실하게 해서 기억해주셔야 합니다. 아래에 추가하는 코드에서 display_name 이 필드의 metakey 와 동일해야 올바르게 적용됩니다. 만약 코드 삽입 시 적용되지 않는다면 필드 추가 시 metakey가 아래 코드 부분과 다르기 때문에 적용이 되지 않을 수 있으므로 이 부분을 확인해주세요.
WP-members 의 필드 추가 후 시 작성한 이름과 Meta Key 이름이 일치하는지 확인해주세요.
자 이제 게시글 업로드 시 Fields 에서 새로 만든 nickname 으로 보여질 수 있도록 워드프레스의 Theme File Editor 에서 코드를 삽입해서 변경해주도록 하겠습니다. 아래 이미지 처럼 function.php 파일 맨 아래에 코드를 삽입해주세요. 해당 코드는 아래에 작성해놨습니다.
/**
* display name 변경 코드
*/
add_action(‘user_register’, ‘my_custom_user_register’);
function my_custom_user_register() {
$users = get_users(array(‘fields’=>’all’));
foreach($users as $user){
$user = get_userdata($user->ID);
$display_name = $user->nickname;
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) );
}
}
Nickname 수정 확인
코드 삽입 후 저장 완료를 해주셨으면 새로고침을 한 번 해주세요. 좌측 메뉴 User 에서 기존에 만들었던 User는 삭제해주세요. 삭제 후 관리자 계정에서 로그아웃 버튼을 누르고 다시 회원가입을 새로 진행해주세요. 새로 만든 계정으로 게시글 테스트를 하기 위해 다시 한 번 게시글 업로드를 하시면 됩니다.
맨 처음 게시글을 업로드 했을 때 Author 부분에 닉네임이 반영되지 않는 경우가 있습니다. 이 경우 당황하지 마시고 다시 한번 게시글을 업로드 해주세요. 아래와 같이 2번째 게시글은 Author 부분에서 nickname ‘aaa’ 가 제대로 나오고 있음을 확인할 수 있습니다. 한 번 더 확인하기 위해 3번째 게시글도 업로드를 했습니다. 역시 동일한 닉네임 aaa로 정확하게 나오고 있습니다.
회원가입 후 워드프레스 상단바(admin bar) 문제
위에서 닉네임 문제를 해결했습니다. 그런데 일반 회원가입 후 상단을 보면 워드프레스 관리자 계정에 들어갈 때 보이는 검정색 admin bar 가 보이는 문제가 발생합니다. 이 때 좌측의 W 모양의 워드프레스 버튼을 클릭하면 메뉴가 없는 관리자 페이지에 접속되는 문제도 같이 생깁니다. 일반 회원들의 경우 혼란이 올 수 있기 때문에 위의 문제를 해결하도록 하겠습니다.
‘W’ 버튼 클릭 시 관리자 페이지 이동
문제 해결 코드 삽입
문제 해결을 위한 코드를 삽입해주겠습니다. 위에서 Nickname 문제를 해결하기 위해 Theme File Editor -> function.php 파일에 코드를 삽입했었습니다. 이 코드 바로 아래에 두 개의 코드를 삽입해주시면 문제를 해결할 수 있습니다. 아래의 코드를 복사 밑 붙여넣기 후 Update File 저장 버튼을 클릭해주세요!
/**
* 최고관리자를 제외하고 admin bar 숨기기
*/
add_action(‘after_setup_theme’, ‘hide_admin_bar’);
function hide_admin_bar() {
if (!current_user_can(‘manage_options’)) {
show_admin_bar(false);
}
}
/**
* 최고관리자를 제외하고 wp-admin 접속불가
*/
add_action(‘admin_init’, ‘restrict_admin_access’);
function restrict_admin_access() {
if (!current_user_can(‘manage_options’) && is_admin()) {
wp_redirect(home_url());
exit;
}
}
Admin bar 제거 확인
관리자 계정으로 로그인 되어있으므로, 로그아웃 후 가입했던 회원 계정으로 다시 로그인을 해주세요. 위에서 코드 삽입이 제대로 적용되었다면 admin bar 가 보이지 않게됩니다. 아래 이미지를 보면 상단이 깔끔하게 나옵니다.