최신글에 특정 검색어가 있는 글만 보이는 게시판이 있나요?

예를 들어 KBoard 모던 갤러리 스킨게시판에 글을 100개 정도 올리고, 최신글에 감자라는 글이 제목에 있는것만 보이게 할 수 있을까요? 아니면 그런 게시판이 있나요?

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    kboard_list_where 필터를 활용하시면

    최신글에서 제목에 특정 문구가 들어간 게시글만 표시하실 수 있습니다.

    아래의 코드를 추가해보시겠어요?

    add_filter('kboard_list_where', 'kboard_list_where_20210510', 10, 3);
    function kboard_list_where_20210510($where, $board_id, $content_list){
    	if($content_list->is_latest && $board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$where .= " AND `title` LIKE '%감자%'";
    	}
    
    	return $where;
    }

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

     

    테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.

    고맙습니다.

  • 항상 감사드립니다.
    'kboard_list_where_20210510', 10, 3  이건 어떤 의미 일까요?

    검색어 잘 되는거 확인 했습니다. 그런데 문제는 이 최신글을 페이지 마다 다르게 넣어야 합니다. 페이지마다 감자 일대 있고, 양파일때 있고, 계속 바뀝니다. 이럴때는 어떤 방법이 있을까요?

  • add_filter에 적용된 kboard_list_where_20210510 부분은 함수명입니다.

    add_filter로 실행되는 함수명을 적어주시면 됩니다.

    10 부분은 add_filter가 실행되는 순서입니다.

    워드프레스에서 필터는 여러 번 적용될 수 있기 때문에

    실행되는 순서를 숫자로 제어하실 수 있습니다.

    3 부분은 kboard_list_where_20210510 함수의 파라미터 개수입니다.

     

    add_filter 함수에 대한 자세한 내용은

    아래 링크를 참고 부탁드립니다.

    https://developer.wordpress.org/reference/functions/add_filter/

     

    kboard_list_where 필터를 활용해서 페이지 별로 최신글을 다르게 표시하시려면

    기존의 코드 대신 get_the_ID 함수를 활용해보세요.

    예제 코드는 아래와 같습니다.

    add_filter('kboard_list_where', 'kboard_list_where_20210513', 10, 3);
    function kboard_list_where_20210513($where, $board_id, $content_list){
    	if($content_list->is_latest && $board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = get_the_ID();
    		
    		if($page_id == '1'){ // 실제 페이지 id로 적용해주세요.
    			$where .= " AND `title` LIKE '%감자%'";
    		}
    		else if($page_id == '2'){ // 실제 페이지 id로 적용해주세요.
    			$where .= " AND `title` LIKE '%양파%'";
    		}
    	}
    	
    	return $where;
    }

    위의 코드에서 $page_id == '1' 부분과 $page_id == '2' 부분은 실제 페이지 ID로 적용해주세요.

    위와 같이 코드를 적용하면 

    1번 페이지에서는 제목에 감자가 포함된 1번 게시판의 최신글이 표시되며

    2번 페이지에서는 제목에 양파가 포함된 1번 게시판의 최신글이 표시됩니다.

     

    워드프레스에서 페이지 ID를 찾는 방법은 아래 블로그 링크를 확인해주세요.

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

    고맙습니다.

  • 한가지만 더 여쭙니다.

    KBoard 원더풀 제품소개 스킨 사용하려고 합니다.


    제목이 아니고 상품소개 추가 내용으로 검색이 가능할까요? 그리고, '%양파,감자%' 이렇게 중복도 가능한가요?

  • 본문 내용이라면 title을 content로 변경하시면

    본문 내용으로 필터링하실 수 있습니다.

     

    만약, 상품소개 추가 내용 입력 필드에 입력된 값으로 필터링하시려면

    아래의 코드를 활용해보세요.

    add_filter('kboard_list_from', 'kboard_list_from_20210518', 10, 3);
    function kboard_list_from_20210518($from, $board_id, $content_list){
    	global $wpdb;
    	if($content_list->is_latest && $board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$from .= " LEFT JOIN `{$wpdb->prefix}kboard_board_option` ON `{$wpdb->prefix}kboard_board_content`.`uid`=`{$wpdb->prefix}kboard_board_option`.`content_uid`";
    	}
    	return $from;
    }
    
    add_filter('kboard_list_where', 'kboard_list_where_20210518', 10, 3);
    function kboard_list_where_20210518($where, $board_id, $content_list){
    	global $wpdb;
    	
    	if($content_list->is_latest && $board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$option_key = 'additional_content'; // 실제 입력 필드 메타 키로 적용해주세요.
    		$page_id = get_the_ID();
    		
    		if($page_id == '1'){ // 실제 페이지 id로 적용해주세요.
    			$keyword = '감자';
    			$where = "`board_id`='{$board_id}' AND (`{$wpdb->prefix}kboard_board_option`.`option_key`='{$option_key}' AND `{$wpdb->prefix}kboard_board_option`.`option_value` = '%{$keyword}%') AND `notice`='' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval')";
    		}
    		else if($page_id == '2'){ // 실제 페이지 id로 적용해주세요.
    			$keyword = '양파';
    			$where = "`board_id`='{$board_id}' AND (`{$wpdb->prefix}kboard_board_option`.`option_key`='{$option_key}' AND `{$wpdb->prefix}kboard_board_option`.`option_value` = '%{$keyword}%') AND `notice`='' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval')";
    		}
    	}
    	return $where;
    }

    위의 코드에서 게시판 id 및 페이지 id는 실제 id로 적용해주세요.

    $keyword 변수에 적용된 감자나 양파도 적절히 활용해보세요.

    고맙습니다.

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