안녕하세요. 글 올리기 전 마스킹 관련 글은 모두 읽어보고 적용도 해봤습니다.
최종적으로 적용한 코드는 테마의 funtion 의 다음과 같습니다.
1. 이 코드 적용시 댓글의 작성자가 아예 안보입니다. 이유가 뭘까요?
2. 관리자는 마스킹을 풀고 싶은데 수정해야 할 부분을 알려주실 수 있을까요?
3. 관리자로 로그인 시 마스킹 해제 할 수 있는 방법(이것도 찾아보고 적용했는데 워드프레스 치명적인 오류 뜨면서 로딩이 아예안되네요ㅠㅠ)
질문이 많네요..ㅠㅠ감사합니다!
게시글 본문에서는 작성자명을 정상적으로 표시되게 하시려면
!$board->isAdmin() && !$board->isAdmin($user_id) && $board->id == '1' 부분을
아래의 코드로 교체해보세요.
kboard_mod() != 'document' && !$board->isAdmin() && !$board->isAdmin($user_id) && $board->id == '1'
고맙습니다.
친절한 답변 정말 감사합니다!
바로 적용해봤는데 잘 되네요!
혹시 실례가 안된다면 하나 더 여쭙고 싶은데
게시판의 모든 글을 비밀글로 할 생각인데
관리자 로그인이 아닌 상태에서
비밀글의 비밀번호를 누르고 글을 열었을때 이름에 마스킹을 풀 수 있는 법이 있을까요?
만약에 있다면 알려 주실 수 있을까요?
감사합니다!
안녕하세요~^^
kboard_user_display 필터로 마스킹 처리 시
관리자의 작성자명과 관리자로 로그인 시 작성자명을 마스킹 처리하지 않게 하시려면
아래의 코드로 교체해보세요.
add_filter('kboard_user_display', 'kboard_user_display_20210716', 10, 5);
function kboard_user_display_20210716($user_display, $user_id, $user_name, $plugin, $builder){
$board = $builder->board;
if(!$board->isAdmin() && !$board->isAdmin($user_id) && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
// 이곳에 코드를 추가해보세요.
$strlen = mb_strlen($user_name, 'utf-8');
if($strlen > 3){
$showlen = 2;
}
else{
$showlen = 1;
}
$user_display = mb_substr($user_name, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
}
return $user_display;
}
위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해주세요.
$board->isAdmin() 코드로 관리자인지 체크하실 수 있습니다.
$board->isAdmin($user_id) 코드처럼 파라미터로 사용자 ID를 넘겨주시면
ID로 구분해서 관리자인지 체크하실 수 있습니다.
고맙습니다.