안녕하세요,
익명게시판에서 글/댓글 작성자가 관리자일 경우 관리자 아이디가 그대로 표시되도록 하고싶습니다.
현재 list.php에선:
/* 댓글작성시 author&password 없애기*/ ?>
<?php if(is_user_logged_in()):?>
<input type="hidden" name="member_display" value="<?php echo $member_display?>"
<?php else:?>
<input type="hidden" name="member_display" value="익명">
<input type="hidden" name="password" value="<?php echo uniqid()?>">
<?php endif?>
로 해놨고 functions.php에선:
/* 익명게시판 익명댓글*/
add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
function my_kboard_user_display($user_display, $user_id, $user_name, $plugins, $boardBuilder){
$board = $boardBuilder->board;
/*$user_id = get_current_user_id();*/
if($plugins == 'kboard-comments' && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
$skin_field = $board->fields()->getSkinFields();
$author = $skin_field['author'];
if($author['permission'] == 'always_hide' && $board->isAdmin()){
$user_display = $author['default_value'];
}
else {
$user_display = $user_name;
}
}
return $user_display;
}
로 해놨습니다. 결과적으로 로그인을 하지 않은 유저는 익명으로 나오지만, 관리자로 들어갔을때는 아이디 표기가 1로 됩니다. 아이디로 나오게끔 어떻게 해야할까요?
정말 감사합니다!!
안녕하세요~^^
코드만 봐서는 어떻게 하고 싶으신 건지 이해가 잘 가지 않습니다.
작성자 필드가 항상 숨김일 경우 관리자에게는
기본값으로 표시되고 일반 사용자들에게는 기존의 작성자명으로 표시됩니다.
로그인 사용자는 작성자명이 그대로 저장되며
비회원의 작성자명은 익명으로 고정됩니다.
어떻게 하고 싶으신 건지 좀 더 구체적으로 설명해주시겠어요?
고맙습니다.
안녕하세요,
제가 이루고자 하는것은, 관리자는 관리자로 나오고 나머지 유저는 다 익명으로 나오게끔 하는것입니다 (로그인이 되었던 로그인이 되지 않았던)
제가 올린 코드에서 다음과 같은 코드를 추가하니 1로 뜨던 관리자 대신해서 text로 변환되긴 하지만 이건 주먹구구식으로 만든 코드라 나중에 문제가 될 것 같아서요:
add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
function my_kboard_user_display($user_display, $user_id, $user_name, $plugins, $boardBuilder){
$board = $boardBuilder->board;
if($plugins == 'kboard-comments' && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
$skin_field = $board->fields()->getSkinFields();
$author = $skin_field['author'];
if($author['permission'] == 'always_hide' && $board->isAdmin()){
$user_display = $author['default_value'];
return $user_display;
}
else {
$user_display = $user_name;
if ($user_name == '1') {
$user_display = "<div style='color:red !important;'>오야붕</div>";
return $user_display;
}
return $user_display;
}
}
return $user_display;
}
감사합니다.
프로그램 코드를 올려야 할 경우 반드시 에디터의 코드 스니펫 삽입 기능을 사용해주세요. (가독성이 좋아집니다.)
그렇지 않으면 에러가 나는 코드로 바뀌거나 질의응답 시 의사소통에 문제가 있을 수도 있습니다.
KBoard 댓글 쪽에서 관리자의 댓글에는 작성자명에 관리자로 표시하고
그 이외의 사용자 작성자명에는 익명으로 표시되게 하시려면
올려주신 코드 대신 아래의 코드를 활용해보시겠어요?
add_filter('kboard_user_display', 'kboard_user_display_20201130', 10, 5);
function kboard_user_display_20201130($user_display, $user_id, $user_name, $plugins, $boardBuilder){
$board = $boardBuilder->board;
if($plugins == 'kboard-comments' && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
if($board->isAdmin($user_id)){
$user_display = '관리자';
}
else{
$user_display = '익명';
}
}
return $user_display;
}
위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해주세요.
테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.
고맙습니다.
말씀하신 코드스니펫 사용하도록 하겠습니다.
제가 몇 시간을 머리를 쥐어짜도 안되던게 말씀하신 코드로 하니까 깔끔히 되는군요.. 이런게 경력자와의 차이인가봅니다.
감사합니다 구현 구동 잘됩니다 :)