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

2019. 8. 6. 22:04 | 댓글 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별로 레이아웃을 제어할 수 있을 것입니다.

참고:

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">
  1. thumbnail
    공수래공수거

    도움이 되시는분들이 많으셨으면 합니다.
    태풍 영향으로 비가 계속 내리는 수요일입니다.
    기분좋게 하루 보내세요^^

  2. thumbnail
    내로라하다

    클래스를 적용하다니 대단하네요. 혹시 이렇게 하고 있는 홈페이지가 있을까요?