안녕하세요. 숏코드를 활용하여 시작태그와 종료태그 사이의 내용을 특정 Role에게만 보이도록 하고자,
아래 링크를 참고하여 제 자식테마 function.php에 다음과 같은 코드를 삽입했습니다.
https://stackoverflow.com/questions/39593273/user-roles-shortcode
function check_user_role( $atts, $content = null ) {
extract( shortcode_atts( array(
'role' => 'role' ), $atts ) );
$user = wp_get_current_user();
$allowed_roles = explode(',', $role);
if( array_intersect($allowed_roles, $user->roles ) ) {
return $content;
}
}
add_shortcode( 'user_role', 'check_user_role' );
/* 숏코드 사용법
[user_role role="begginer"]content[/user_role]
*/
CSS의 display: none; 처럼 아예 DIV 요소가 공간차지도 없이 사라지길 원했지만, 아래 사진처럼 공백으로 자리를 차지하면서 보이지 않게 되어버립니다.
(사진은 3개의 요소 중 가운데 요소가 위의 코드로 인해 감춰진 경우입니다)
$content = null 이 수식 때문에 그런 것 같은데,
어떻게 해야 display:none;처럼 아예 공간차지도 안 하고 없어지게 할 수 있을까요?
안녕하세요~^^
내용만 보아서는 content 내에 숏코드를 입력하신 듯 합니다.
content 내에 숏코드를 입력하시는 경우
내용을 출력하기 위한 레이아웃이 이미 표시된 이후 이므로
내용만 보이지 않을 뿐 레이아웃 자체가 표시가 안되지는 않습니다.
사용중이신 플러그인 제작사 측에 문의해보시거나
아래의 링크를 참고하여 함수 실행 순서에 맞게
필요한 지점을 찾아 적용해보시겠어요?
https://codex.wordpress.org/Plugin_API/Action_Reference
고맙습니다.