본문 바로가기

워드프레스의 body 태그에 사용자 역할(Role) 클래스를 추가하는 방법

2019.08.06 댓글 4

워드프레스의 body 태그에 사용자 역할(Role)을 클래스로 추가하면 역할에 따라 특정 페이지의 레이아웃을 다르게 만들 수 있습니다. 예를 들어, 특정 요소는 관리자로 로그인한 상태에서만 표시되고 게스트나 다른 사용자는 볼 수 없도록 하려는 경우에 body에 추가된 사용자 역할 클래스를 활용할 수 있습니다.

body 태그에 사용자 역할을 추가하려는 경우 다음 코드를 사용자 함수 파일에 추가하도록 합니다.

// Add user role class to body tag
// 사용자 역할(회원 등급) 클래스를 body 태그에 추가하기
function add_role_to_body($classes) {
    global $current_user;
    $user_role = $current_user->roles;
    return array_merge( $classes, array( $user_role[0] ) );
}
add_filter('body_class','add_role_to_body');
//출처: https://gist.github.com/jancbeck/3178689

HTML 소스를 살펴보면 body 태그에 사용자 역할(예: 관리자의 경우 administrator)이 클래스로 추가되어 있을 것입니다. 워드프레스 Jupiter 테마에서 테스트해보니 원하는 대로 클래스가 추가되어 있는 것을 확인할 수 있었습니다.

워드프레스 body 태그에 사용자 역할 태그 추가하기

body 태그에 사용자 ID 클래스를 추가하는 것도 가능합니다. body 태그에 사용자 ID를 클래스로 추가하려는 경우 다음 코드를 테마의 함수 파일에 추가합니다.

// Add user id CSS class via http://codex.wordpress.org/Function_Reference/body_class
// body 태그에 사용자 ID CSS 클래스 추가하기
add_filter( 'body_class', 'my_class_names' );
function my_class_names( $classes ) {
 // add 'class-name' to the $classes array
 global $current_user;
 $user_ID = $current_user->ID;
 $classes[] = 'user-id-' . $user_ID;
 // return the $classes array
 return $classes;
}
//출처: https://www.themightymo.com/2014/12/01/add-user-id-wordpress-body-class/

body 태그에 사용자 ID 클래스를 추가하면 사용자 ID별로 레이아웃을 제어할 수 있을 것입니다.

참고:

※일부 글에 제휴 링크가 포함될 수 있습니다.

댓글4