카테고리 설정

안녕하세요 선생님

kboard, default 사용중에 있습니다.

 

행사를 지역별로 나눠 게시판에 올리고 싶습니다.

문제는 다음과 같습니다.

 

서울 경기 충북 충남 4개를 나눈다고 예로 들겠습니다.

문제는 "행사가 어느 한 지역에만 열리는 것이 아니라서" 카오스에 빠져있습니다.

 

왜냐하면, 음악회 티켓안내를 소개하는 글을 올렸을 때, 사실 이게 "전국"에서 개최될 경우 혹은 "경기와 충북"에서만 개최될 경우 등등 경우의 수가 많기 때입니다.

 

정리) 1.  게시판을 작성할 때, "전국 ㅁ, 서울 ㅁ, 경기 ㅁ, 충북 ㅁ, 충남 ㅁ" 이렇게 옵션기능으로

            제가 직접 어디 카테고리에 글을 넣을지 정하는 기능이면 좋겠습니다.

        2. 여러 카테고리에 지정을 하더라도 홈화면에서 "모아보기와 최신글숏코드"에서는 1개의 글만 나오게 하고 싶습니다. 

      

어떻게하면 될까요 ㅠㅠ

스샷 참조부탁드립니다. 최종 희망 모습 피피티로 만들어 봤습니다. 꼭 옵션기능이 아니더라고 이를 해결할 대책이 있으면 알려주시면 감사드리겠습니다.ㅠㅠ

스샷 : https://imgur.com/hpXUBkX

감사합니다. 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    1. KBoard 플러그인 입력 필드를 활용해보시는 건 어떠신지요?

    사용 중이신 스킨에 따라 입력 필드를 추가하는 방법이 다르기 때문에

    워드프레스 관리자 페이지에서 입력 필드 설정 기능을 지원하는 스킨을 사용 중이시라면

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 입력필드 설정 탭에서

    필드를 추가하실 수 있습니다.

    아래 링크도 참고해보시겠어요?

    KBoard(케이보드) 게시판에 새로운 필드 추가하기

     

    입력 필드 설정 기능을 지원하지 않는 스킨을 사용 중이시라면

    아래의 링크를 참고해보세요.

    워드프레스 게시판 KBoard(케이보드) 새로운 입력 필드 추가 방법

     

    추가한 입력 필드를 게시글 목록 페이지에서 검색하는 방법은

    아래의 링크를 참고해보세요.

    KBoard(케이보드) 입력 필드 검색 방법

     

    2. 최신글 모아보기나 최신글 숏코드에서 하나의 게시글만 표시하고 싶으신 건지요?

    최신글 모아보기의 경우

    워드프레스 관리자 -> KBoard -> 최신글 모아보기 -> 최신글 모아보기 선택하신 후

    게시글 표시 수로 최신글 리스트에 보여지는 게시글 개수를 설정하실 수 있습니다.

     

    최신글 숏코드의 경우

    아래의 숏코드 중 rpp="5" 부분이 표시할 게시글의 개수입니다.

    숫자를 조절해보시겠어요?

    [kboard_latest id="1" url="최신글이동페이지주소" rpp="5"]

    위의 숏코드에서 id 부분과 url은

    실제 게시판 id와 최신글 이동 페이지 주소로 변경하신 후에 적용해보세요.

    고맙습니다.

  • ㅠㅠ 일단 해보고는 있는데, 홈페이지가 안뜨네요. 죄송하지만 뭐가 잘못된것지좀 봐주시면 감사드립니다....

    아래는 입력필드 설정에서 '지역'을 추가한것입니다. 게시판 id는 7이고 ' 'regionkorea'로 고쳤습니다.

     

    add_filter('kboard_skin_fields', 'my_kboard_skin_fields', 10, 2);
    function my_kboard_skin_fields($fields, $board){
        
        if($board->id == '7'){ // 실제 적용될 게시판 ID 값으로 변경해주세요.
            
            if(!isset($fields['regionkorea'])){
                $fields['regionkorea'] = array(
                    'field_type' => 'regionkorea',
                    'field_label' => '지역',
                    'class' => 'kboard-attr-text',
                    'hidden' => '',
                    'meta_key' => '',
                    'field_name' => '',
                    'permission' => '',
                    'roles' => '',
                    'default_value' => '',
                    'placeholder' => '',
                    'required' => '',
                    'show_document' => '',
                    'description' => '',
                    'close_button' => 'yes'
                );
            }
        }
        
        return $fields;
    }
    
    
    

    아래는 게시글 작성시 보여지는 필드의 HTML 코드를 출력란입니다. 체크박스로 여러개 선택가능하게 뜨도록 만들었습니다.

    근데 이 코드 넣으니까 홈페이지 접속이 안되네요. 뭐가 잘못되었나요 ㅠㅠ 일단 여기까지만 성공시키고 차근히 다음단계 해봐야할거 같아서요.

    확인부탁드립니다 ㅠㅠ

    add_filter('kboard_get_template_field_html', 'my_kboard_get_template_field_html', 10, 4);
    function my_kboard_get_template_field_html($field_html, $field, $content, $board){
        
        if($field['field_type'] == 'regionkorea'){
            
            ?>
            <div class="kboard-attr-row">
                <label class="attr-name" for="kboard_option_inquiry_type">지역설정</label>
                <div class="attr-value">
                    <label>
                        <!-- 아래 히든(hidden) 필드의 값은 체크박스가 체크되지 않았을 때 저장할 기본값입니다. -->
                        <input type="hidden" name="kboard_option_inquiry_type" value="">
                        <input type="checkbox" name="kboard_option_inquiry_type" value="전국"<?php if($content->option->regionkorea == '전국'):?> checked<?php endif?>>
                    전국
                    </label>
                </div>
            </div>
    
            <?php
            $field_html = ob_get_clean();
        }
        
        return $field_html;
    }
    
    <!-- list.php 혹은 document.php 파일에 저장된 값 출력 -->
    <?php echo $content->option->attendance?>
    
    <!-- 저장된 값의 유무에 따라서 원하는 값을 출력할 수 있습니다. -->
    <?php echo $content->option->attendance ? '전국' : '서울' : '경기' : '충북' : '충남' ?>

     

  • 코드 수정 시 워드프레스 디버그 모드를 활성화하시면

    에러 메시지를 확인해보실 수 있습니다.

    워드프레스 에러 확인하기 - 디버그 모드 활성화 방법

     

    올려주신 코드 중 아래의 코드로 인해 에러가 발생하는 듯합니다.

    지우신 후에 확인해보시겠어요?

    <!-- list.php 혹은 document.php 파일에 저장된 값 출력 -->
    <?php echo $content->option->attendance?>
    
    <!-- 저장된 값의 유무에 따라서 원하는 값을 출력할 수 있습니다. -->
    <?php echo $content->option->attendance ? '전국' : '서울' : '경기' : '충북' : '충남' ?>

     

    또, 게시글의 옵션 필드가 정상적으로 저장되게 하시려면

    올려주신 코드 중 kboard_option_inquiry_type 부분을 모두

    kboard_option_regionkorea로 교체해보시겠어요?

    고맙습니다.

  • 네 선생님 수정사항 체크해 주셔서 다음과 같이 나오게끔 하는데 까지 성공했습니다. 

    https://imgur.com/hVwItkT

    아래 코드를 추가해서 게시글 본문에 입력된 필드의 값을 출력하도록 하기위해 다음과 같은 코드를 넣었으나, 출력이 되지 않고 있습니다.

    어디가 잘못되었나요 ㅠㅠ 이게 주소 삽입 관련해서만 해당하는 코드인가요?

    제가 생각하기에 이 코드를 넣으면, 경기와 충북을 체크박스에서 체크하여 글을 작성하면, 게시판 글에 경기와 충북으로 나오리라 생각하고 넣은 코드이긴 합ㄴ다.

    제가 오해 한건가요. 오해한거라면 아래 소스 지우고 https://blog.naver.com/PostView.nhn?blogId=chan2rrj&logNo=221264876651 요거 설명서 보면 되는건가요 

    디버그에서는 특별히 이상이 없어보입니다.

    //아래 코드를 추가해서 게시글 본문에 입력된 필드의 값을 출력할 수 있습니다.
    add_filter('kboard_document_add_option_value_field_html', 'my_kboard_document_add_option_value_field_html', 10, 4);
    function my_kboard_document_add_option_value_field_html($value_html, $field, $content, $board){
    	
    	if($field['field_type'] == 'regionkorea'){
    		$value_html = sprintf('<div class="kboard-document-add-option-value meta-key-%s"><span class="option-name">%s</span> : %s</div><hr>', $field['field_type'], $field['field_name'], "{$content->option->kboard_option_regionkorea}");
    	}
    	
    	return $value_html;
    }

    감사합니다

  • 입력 필드 설정 쪽에 필드를 별도로 추가하셨다면

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 입력필드 설정 탭에서

    해당 필드 설정 중 게시글 본문에 표시 체크박스에 체크하신 후 저장해보시겠어요?

     

    올려주신 지역설정 필드의 경우에는 별도의 코드를 추가하는 방법 외에도

    입력필드 설정 탭에서 확장필드인 체크박스로도 같은 기능을 할 수 있을 듯합니다.

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요