코스모스팜 스레드

카테고리 "전체" 삭제 후 링크 관

일전 게시물을 검색해보면 카테고리에서 "전체" 항목을 삭제 후 링크 설정 시

/?category1=카테고리명&mod=list&pageid=1

이런식으로 설정하라고 되어있던데 이 방식 말고 "전체"를 삭제 후 정상적으로(해당 게시물이 설정된 페이지 링크 시) 첫번째 카테고리가 active 되도록 할 수 있는 방법은 없을까요?

메뉴 상에서 사용자 정의로 앞서 표기한 대로 링크를 주는 방식은 향후 유지보수나 작업 방식의 통일성이 결여되는 사항이라 개선하고 싶습니다.

조언 부탁드립니다.

무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
  • 안녕하세요~^^

    KBoard 플러그인에서 카테고리1 중에서 "전체"를 지우고

    첫 번째 카테고리가 선택되게 하는 방법 중

    kboard_category1 필터를 활용한 방법도 있습니다.

     

    아래의 코드를 테마 쪽 functions.php 파일에 추가해보시겠어요?

    add_filter('kboard_category1', 'my_kboard_category1', 10, 1);
    function my_kboard_category1($category1){
    	$page_id = get_the_ID();
    	if(!$category1 && $page_id == '1'){ // 실제 페이지 ID로 적용해주세요.
    		$category1 = '자유게시판';
    	}
    	return $category1;
    }

    위의 코드에서 $page_id == '1' 부분은 실제 게시판이 설치된 페이지 ID로 적용해주세요.

    $category1 = '자유게시판' 부분은 첫 번째 카테고리 명으로 교체해주세요.

     

    워드프레스에서 페이지 ID를 찾는 방법은

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

    워드프레스에서 페이지(포스트) ID를 찾는 방법

    고맙습니다.

  • 답변 감사합니다.

    페이지 ID 찾는건 어렵지 않으나 알려주신 사항은 kboard_category1 필터에 해당되는 모든 게시판들이 동일하게 변경되는 구조라서

    board_id 별로 또 개별적으로 적용할 수 있는 다른 방법에 대해서 조금 더 조언 부탁드리겠습니다.

  • 이전 댓글에 안내해드린 코드를 적용하시면

    해당 ID의 페이지에 설치된 게시판에만 적용이 됩니다.

     

    게시판 id로 구분하시려면

    아래의 코드를 활용해보시겠어요?

    add_action('kboard_skin_header', 'my_kboard_skin_header', 10, 1);
    function my_kboard_skin_header($builder){
    	$board = $builder->board;
    	if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		add_filter('kboard_category1', 'my_kboard_category1');
    	}
    }
    
    function my_kboard_category1($category1){
    	if(!$category1){
    		$category1 = '자유게시판';
    	}
    	return $category1;
    }

    위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해보세요.

    고맙습니다.

  • 감사합니다.

    action 안에 filter는 생각 못했네요ㅎㅎ

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)