여러번에 걸처 질문을 하게 됩니다.
만들고자 하는 사이트는 약사회분회사이트 입니다.. 하나의 사이트로 다양한 분회들이 이용가능하게 하고자 합니다.
약사회원들은 분회에 소속되어 있기에 분회의 공간과 약사들 공통공간을 이용하게 됩니다.
분회공간의 게시판들은 입력시과 조회시에 해당분회 글만 나와야 합니다
1. 카테고리2를 분회분류로 사용하고 있습니다.. 카테고리2에 소속없음, 계양구,미추홀구, 거제시 등으로 입력이 되어 있습니다
2. 분회별 게시판 리스트는 각 회원들이 등록할 때 분회를 선택하게 되어 있기에 회원정보와 연동이 됩니다 (분회 slug : yaksa_branch)
3. 분회공간에서 글을 작성할 때 , 회원정보에 있는 분회값(yaksa_branch 값)이 카테고리2에 들어가야 합니다
4. 게시글 리스트를 보여줄 때도 , 회원정보에 있는 분회값(yaksa_branch)을 category2 에 입력되어 리스트가 보여집니다.
3번 부분에 대한 조언을 요청합니다.
4번에 대한 코드입니다 (이 부분은 문제가 없는 걸로 보입니다.)
add_shortcode('kboard_category2', 'kboard_builder_category2');
function kboard_builder_category2($args){
if(!isset($args['id']) || !$args['id']) return 'KBoard 알림 :: id=null, 아이디값은 필수입니다.';
if(isset($args['blog']) && $args['blog']){
$_SESSION['kboard_switch_to_blog'] = $args['blog'];
do_action('kboard_switch_to_blog', $args);
}
else{
$_SESSION['kboard_switch_to_blog'] = '';
}
$board = new KBoard();
$board->setID($args['id']);
if($board->id){
$builder = new KBoardBuilder($board->id);
$builder->board = $board;
$builder->setSkin($board->skin);
$builder->setRpp($board->page_rpp);
if(isset($args['mod']) && $args['mod']){
if(!kboard_mod()){
$builder->setMOD($args['mod']);
}
}
if(isset($args['category1']) && $args['category1']){
$builder->category1 = $args['category1'];
}
$current_user = wp_get_current_user();
$branch_name = $current_user->yaksa_branch;
echo "사용자 소속분회: ";
echo $branch_name;
echo "<br>";
echo "<br>";
echo "<br>";
/*
$board_id = $args['id'];
$where = " 'board_id' = '$board_id' and 'category2' = '$branch_name' ";
echo $where;
*/
/*if(isset($args['category2']) && $args['category2']){
$builder->category2 = $branch_name;
}
*/
$kboard = $builder->create();
if(isset($args['blog']) && $args['blog']){
do_action('kboard_restore_current_blog', $args);
}
return $kboard;
}
else{
if(isset($args['blog']) && $args['blog']){
do_action('kboard_restore_current_blog', $args);
}
return 'KBoard 알림 :: id='.$args['id'].', 생성되지 않은 게시판입니다.';
}
}
************************
add_filter('kboard_list_where', 'kboard_list_where_2021', 10, 3);
function kboard_list_where_2021($where, $board_id, $content_list){
$current_user = wp_get_current_user();
$branch_name = $current_user->yaksa_branch;
echo "branch_name :";
echo $branch_name;
echo "<br>";
// 약사커뮤니티. 콘텐츠 게시판 카테고리2 검색조건 제외
if($branch_name != "")
{
if ($board_id != "7" && $board_id != "9" && $board_id != "10" && $board_id != "11" && $board_id != "12")
{
// 카테고리2 값이 없을 경우 검색조건 제외
if ($branch_name != "소속없음" && $branch_name != "대상없음")
{
//$where .= " AND board_id = '$board_id' AND (category2 = '$branch_name') ";
$where .= " AND category2 = '$branch_name' ";
}
}
}
//echo $where;
echo "사용중 kboard id : ";
echo $board_id;
echo "<br>";
echo "<br>";
//echo "이거는";
echo "where 값: ";
echo $where;
return $where;
}
안녕하세요~^^
KBoard 플러그인에서 게시글 작성 시
회원가입 시 입력한 값을 기본으로 설정하시려면
스킨 파일을 수정해주셔야 할 듯합니다.
KBoard 플러그인에서 카테고리1과 카테고리2는
FTP로 접속해서 /wp-content/plugins/kboard/skin/사용중인스킨/list-category-default.php 파일에서 표시하고 있습니다.
워드프레스 get_user_meta 함수를 활용하시면
회원가입 시 입력한 메타 필드의 정보를 가져오실 수 있습니다.
고맙습니다.
이 부분을 수정하여야 한다면 각 스킨마다 모두 만들어 두고
케이보드가 업그레이드 될때를 위해서 따로 저장을 해야 하겠네요.
위의 숏코드에 넣을 수 있으면 대응이 쉬울 거 같습니다..
도와주셨으면 합니다
스킨 수정 시에는 스킨 폴더를 복사해서 작업하시는 걸 권장드립니다.
스킨을 별도로 복사해서 작업하시면 KBoard 플러그인이나 스킨을 업데이트하더라도
복사한 스킨의 코드는 지워지지 않습니다.
아래 관련 링크를 참고해보시겠어요?
https://www.cosmosfarm.com/threads/document/12740
저희가 커뮤니티에서 모든 코드를 만들어드리는 건 어렵습니다.
직접 코드를 수정하기 어려우시다면
프로젝트 의뢰에 상세 내용을 올려보세요.
https://www.cosmosfarm.com/project
고맙습니다.