안녕하세요.
스레드를 보고 kboard 작성자에 랭크 로고를 다는것을 완료했습니다.
현재 list, document, comment 모두 완료한 상태인데요..
제가 Q&A 게시판을 운영하는데
답글을 달았을때 RE:~ 처럼 달리잖아요
요소 검사를 해봐도 그냥 list에 일반글 작성자와 같은 이름인데
RE:~ 처럼 답글달린 게시글만 로고가 출력이안됩니다...
아래 사진을 참고해주세요
참고로 비회원으로 작성된 경우(랭크가 없는 경우) 디폴트 로고를 출력하는 방법이 있을지 여쭤봅니다..
감사합니다.
안녕하세요~^^
KBoard 플러그인에서 답글 쪽 코드는
FTP로 접속해서 /wp-content/plugins/kboard/skin/사용중인스킨/reply-template.php 파일에 있습니다.
로고는 어떤 식으로 추가하셨는지요?
스킨의 파일들을 수정하지 않고 kboard_user_display 필터를
테마 쪽 functions.php 파일에 추가하시면
KBoard 게시판, 댓글, 답글 등 작성자명에 로고를 추가하실 수 있습니다.
고맙습니다.
<?php
$rank = mycred_get_users_rank( $content->member_uid );
if ( is_object( $rank ) ) {
if ( $rank->has_logo )
echo $rank->get_image( 'logo' );
}
?>
위 코드를 작성자 명 출력전에 출력하게 했습니다.
reply-template.php에도 이미 적용된 상태인데 반영이 안되네요...ㅜㅜ
functions.php 에 필터추가하는것에 대해 좀 더 자세히 설명 가능하실까요!
바쁘신 와중에도 감사합니다 (_ _)
올려주신 코드를 활용해서 예제 코드를 작성해봤습니다.
아래의 코드처럼 적용해보시겠어요?
add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
if(!function_exists('mycred_get_users_rank')){
include myCRED_ADDONS_DIR . 'ranks/includes/mycred-rank-functions.php';
}
$rank = mycred_get_users_rank($user_id);
if(is_object($rank)){
if($rank->has_logo){
return $rank->get_image( 'logo' ) . $user_display;
}
}
return $user_display;
}
위의 코드를 간단히 설명드리자면 랭크 로고가 있다면
랭크 로고를 표시하고 작성자명을 표시합니다.
랭크 로고가 없다면 작성자명만 표시합니다.
고맙습니다.
감사합니다. 적용이 아주 잘되네요.
괜찮으시다면 한가지만 더 여쭙겠습니다.
익명게시판이 존재하는데
기존에는 게시판 스킨별로 처리를 해서 익명게시판은 로고가 출력이안되었었는데
이번에는 함수로 처리해서 모든 게시판에 적용이되더군요
혹시 특정 게시판은 로고가 안뜨게 처리가능할까요?
감사합니다.
특정 게시판을 제외하시려면
아래의 코드를 적용해보시겠어요?
add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
if(!function_exists('mycred_get_users_rank')){
include myCRED_ADDONS_DIR . 'ranks/includes/mycred-rank-functions.php';
}
if($builder->board->id != '1'){
$rank = mycred_get_users_rank($user_id);
if(is_object($rank)){
if($rank->has_logo){
return $rank->get_image( 'logo' ) . $user_display;
}
}
}
return $user_display;
}
위의 코드에서 $builder->board->id != '1' 부분에는 랭크 로고를 표시하지 않을 게시판 id로 적용해보세요.
고맙습니다.