소스들이 충돌이 나는데요 ㅠ

글 중에 

https://www.cosmosfarm.com/threads/document/29290 와
https://www.cosmosfarm.com/threads/document/26152 여기에

쓰여진 기능이 모두 필요해서 function.php 에 넣어 작성했는데요
충돌이 나서 필터 기능이 작동하지 않는데 어떻게 작성해야될까요?

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

    올려주신 링크의 코드는 서로 영향을 끼치는 코드가 아니기 때문에

    해당 코드들도 충돌이 나는 건 아닌 듯합니다.

     

    정확한 원인을 파악하기 위해서는

    디버그 모드를 활성화해서 오류 메시지가 있는지 확인해보시겠어요?

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

     

    올려주신 내용만으로 추측하자면,

    PHP 함수명이 겹치는 문제일 수도 있습니다.

    필터는 여러 개 중복해서 사용하셔도 문제없지만

    다만, PHP에서 같은 함수명을 중복해서 사용할 수는 없습니다.

     

    새로 추가하신 코드 중에서 my_kboard_list_where 부분을

    my_kboard_list_where1 이런 식으로 모두 교체하신 후 다시 추가해보시겠어요?

    고맙습니다.

  • 앗! 아예 하단에 서치기능이 작동이 안되어버리네요!

  • add_filter('kboard_list_where', 'my_kboard_list_where', 10, 3);
    function my_kboard_list_where($where, $board_id, $content_list){
        if($board_id == '1'){ 
            $today = date('Ymd', current_time('timestamp'));
            $day = '5';
            $date = date('Ymd000000', strtotime("{$today} - {$day} days"));
            $where = "`board_id`= '{$board_id}' AND `date`>='{$date}' AND `parent_uid`='0' AND `notice`='' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval')";
        }
        return $where;
    }
     

     

    이 소스가 문제인 듯 한데 한번 확인해주시겠어요?

  • 특정 기간의 게시글만 표시하면서 검색 기능을 사용하시려는 지요?

    올려주신 코드 대신 아래의 코드로 교체해보시겠어요?

    add_filter('kboard_list_where', 'my_kboard_list_where', 10, 3);
    function my_kboard_list_where($where, $board_id, $content_list){
    	if($board_id == '1'){
    		$today = date('Ymd', current_time('timestamp'));
    		$day = '5';
    		$date = date('Ymd000000', strtotime("{$today} - {$day} days"));
    		
    		$keyword = kboard_keyword();
    		$target = kboard_target();
    		
    		$where = "`board_id`= '{$board_id}' AND `date`>='{$date}' AND `parent_uid`='0' AND `notice`='' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval')";
    		
    		if($keyword){
    			if($target){
    				$where .= " AND (`{$target}` LIKE '%{$keyword}%')";
    			}
    			else{
    				$where .= " AND (`title` LIKE '%{$keyword}%' OR `content` LIKE '%{$keyword}%' )";
    			}
    		}
    	}
    	
    	return $where;
    }

     

    그리고 코드를 올려주실 땐 반드시 에디터의 "코드 스니펫 삽입" 기능으로 삽입해주세요. 

    그렇지 않으면, 코드가 이상해져서 에러 나는 코드로 바뀌거나

    질의응답 시 의사소통에 오해와 문제가 생길 수도 있기 때문입니다

    고맙습니다.

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