안녕하세요
kboard 에서 작성자 이름을 클릭하면 ultimate memeber 프로필로 연결되게 할수 있게 하려고합니다. (댓글도 동일하게)
먼저 다른분이 문의 했던 글이 있어 https://www.cosmosfarm.com/threads/document/8509?answer_sort=uid&answer_order=asc#tabs-horizontal
여기에 나와있는데로 두가지 수정을 적용시킬려고하는데요 첫번째 list.php 와 ducument.php 에 <?php echo $content->member_display?>코드를 찾을수없고;;
스킨의 list.php 또는 document.php 파일에서
<?php echo $content->member_display?> 이 부분을 찾아서 아래처럼 바꿔주세요.
<a href="<?php um_fetch_user($content->uid); echo um_user_profile_url(); um_reset_user();?>"><?php echo $content->member_display?></a>
2번째 수정 내용인 list.template.php 가 존재하지 않습니다.
댓글 스킨의 list-template.php 파일을 수정해주세요.
게시판 쪽과는 살짝 다릅니다.
<?php echo $comment->user_display?> 이 부분을 찾아서 아래처럼 바꿔주세요.
<a href="<?php um_fetch_user($comment->user_uid); echo um_user_profile_url(); um_reset_user();?>"><?php echo $comment->user_display?></a>
사용중인 스킨은 에스크원 상담스킨이며 kboard 게시판과,댓글은 최신버전입니다.
안녕하세요~^^
최신 버전의 KBoard 플러그인과 에스크원 스킨을 사용 중이시라면
스킨 파일을 수정하지 않고 테마 쪽에 kboard_user_display 필터를 사용해서
KBoard 플러그인의 작성자를 수정하실 수 있습니다.
KBoard 플러그인의 작성자 클릭 시 Ultimate Member 프로필 페이지로 연결되게 하시려면
워드프레스 관리자 -> 외모 -> 테마 편집기에서 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){
if($boardBuilder->board->id == '1'){
um_fetch_user($user_id);
$user_display = '<a href="'. um_user_profile_url().'">'.$user_name.'</a>';
um_reset_user();
}
return $user_display;
}
위의 코드에서 $boardBuilder->board->id == '1' 부분은 실제 게시판 id로 적용해보세요.
만약, kboard_user_display 필터가 제대로 동작하지 않는다면
KBoard 에스크원 상담 스킨을 최신 버전으로 업데이트해보시겠어요?
스킨 업데이트는 워드프레스 관리자 -> 스토어 페이지에서 할 수 있습니다.
고맙습니다.
제가 제대로 설명을 못드린거 같습니다. 죄송합니다;; 제가 하고자 했던 것은, ULTIMATE MEMBER 를 이용해서 NAME 메타필드를 불러와 게시글, 및 댓글을 작성자로 표시되게 해놨는데(쓰레드봇님 도움으로)
게시글이나 댓글에있는 작성자 이름을 마우스로 클릭할경우 해당 작성자 프로필을 볼수있게 넘어가는 것을 문의드린것이였습니다.
혹시 이부분도 도움주실수있을까요....?
고맙습니다.
이전 댓글에 안내해드린 코드 중 아래의 코드를
$user_display = '<a href="'. um_user_profile_url().'">'.$user_name.'</a>';
아래의 코드로 교체해서 확인해보시겠어요?
$user_display = '<a href="'. um_user_profile_url().'">'.get_user_meta($user_id, 'name', true).'</a>';
고맙습니다.
알려주신코드로 적용해봤더니 잘됩니다. 근데 먼저 알려주신 코드랑 충돌이 일어나는지 같이 업데이트 하면 페이지에 오류가나서 접근이안됩니다. 나중에 알려주신 코드만 올려서 쓰자니;
작성자가 멤버 user id로 표시되서요;
(말씀해 주신경로 워드프레스 관리자 -> 외모 -> 사용자 정의하기 -> CSS 입력 필드에 올릴려고하니까 올릴수없는코드라고 에러메세지나와서
전에 알려주신 테마 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){
if($boardBuilder->board->id == '3'){
um_fetch_user($user_id);
$user_display = '<a href="'. um_user_profile_url().'">'.get_user_meta($user_id, 'name', true).'</a>';
um_reset_user();
}
return $user_display;
}
//전에 알려주신 코드 uiltimate member user id 대신에 name 메타를 작성자로 표시하기
add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
function my_kboard_user_display($display, $user_id, $username, $plugin, $builder){
$display = get_user_meta($user_id, 'name', true);
return $display;
}
올리는 과정에서 착오가 있었습니다.
이전에 안내해드린 댓글에서 수정 위치를 수정해두었습니다.
최근 알려드린 코드에 전에 안내해드린 코드가 이미 적용되어 있습니다.
아래의 코드가 user_meta name을 표시하는 코드입니다.
get_user_meta($user_id, 'name', true)
고맙습니다.
잘 적용되었습니다. 고맙습니다.