안녕하세요.
게시판에서 작성자 이름에 * 표 표시 하는 방법은 [https://www.cosmosfarm.com/threads/document/14441]글을 보고 해결하였는데,
해당 기능에서 게시판 id 를 하나만 추가하여서 인지, 메인에서 노출되는 '최신글' 에서는 작성자 이름이 전체 노출되고 있습니다.
latest.php 에도 list.php 와 동일하게 작성자에
<?php echo apply_filters('kboard_user_display', $content->getUserName(), $content->getUserID(), $content->getUserName(), 'kboard', $boardBuilder)?> 라고 기재하였는데
list에서는 되고 최신글에서는 안되는 이유를 알 수 있을까요?>
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;
$userdata = get_userdata($user_id);
if($board->id == '2' && !$board->isAdmin() && !in_array('administrator', $userdata->roles)){ // 실제 게시판 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;
}
function.php 에는 위와같이 추가해둔 상태입니다.
카카오톡 오픈채팅방에 여쭤보고 싶었으나, 비번이 걸려있고 비번이 뭔지 모르겠어서 ㅠ 여기다 문의드려요.
안녕하세요~^^
워드프레스 사용자 단톡방은 광고성 글이 많이 올라와서 임시로 비밀번호를 걸어뒀습니다.
참여코드는 wp2021 입니다.
최신글 숏코드를 사용 중이시라면
올려주신 코드를 활용해서 게시판 ID 체크를 하실 수 있습니다.
최신글 모아보기를 사용 중이시라면 게시판 ID가 배열로 되어 있기 때문에
별도로 체크를 해주셔야 합니다.
최신글 숏코드와 최신글 모아보기 중 어떤 기능을 사용 중이신지 알려주시겠어요?
고맙습니다.
최신글 모아보기에도 적용되게 하시려면
올려주신 코드 중
아래의 코드를 찾아서
$board->id == '2'
아래의 코드로 교체해보시겠어요?
($board->id == '2' || is_array($boardBuilder->board_id))
고맙습니다.
혹시 작성한 사용자가 계정을 삭제한 상황일까요?
기존의 코드 대신 아래의 코드로 교체해서도 확인해보시겠어요?
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;
$userdata = get_userdata($user_id);
if(($board->id == '2' || is_array($boardBuilder->board_id)) && !$board->isAdmin() && (!$userdata || !in_array('administrator', $userdata->roles))){ // 실제 게시판 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;
}
고맙습니다.
답변 감사드립니다 :)
최신글 모아보기를 생성하여 아래에 나온 숏코드를 이용하여 아래와 같은소스로 메인에 넣어둔 상태입니다.
<?php echo do_shortcode('[kboard_latestview id="1"]')?>
요 경우에는 게시판 id 를 배열로 어떻게 넣어야할까요?
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;
$userdata = get_userdata($user_id);
if($board->id == '2' || is_array($boardBuilder->board_id) && !$board->isAdmin() && !in_array('administrator', $userdata->roles)){ // 실제 게시판 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;
}
이렇게 넣었더니 오류가 뜨네요 ㅠ
Notice: Trying to get property 'roles' of non-object in /updrive8885/www/wp-content/themes/updrive/functions.php on line 14
Warning: in_array() expects parameter 2 to be array, null given in /updrive8885/www/wp-content/themes/updrive/functions.php on line 14
유** 님
라고 떠요! **는 먹는것 같은데 위에 오류는 어떻게 없앨 수 있을까요?
해결되었습니다!!! 정말 감사합니다.