예약글쓰기 방식 변경

안녕하세요,

 

예약글쓰기 기능을 아래 방법으로 잘 구현했습니다.

 

다음 이슈는 자동 조회수 증가에 대한 것인데, 그것이 예약글에도 적용이 되어버려 문제가 되어, 자동 조회수 증가 플러그인 코드를 조금 수정하여 아직 표출되지 않은 예약글은 올라가지 않게 만들었습니다 (해당 게시글 시간이 미래라면 자동조회수 증가 동작을 하지 않도록 조건문 부가)

 

다만, 최신 범위 50개에서 랜덤하게 증가시키는데, 예약글이 50개를 넘어가면 증가 자체가 일어나지 않게 되겠죠?

 

예약글의 개수 variance가 큰 편이라, 예약글 상태인 경우 범위 50개 카운트에 포함되지 않게 하고 싶습니다.

 

어떻게 하면 될까요?

 

참고로 아래의 링크를 따라 예약글을 구현했고,

 

https://www.cosmosfarm.com/threads/document/45667

 

kboard 조회수 증가의 최상위 폴더에 있는 php의 일부를 아래와 같이 수정하여 예약글 조회수 증가를 억제했습니다.

 

    if($search_limit_row){
        $select_limit_results = $wpdb->get_results("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE `date`>='{$search_limit_row->date}' ORDER BY RAND() LIMIT {$select_limit}");
        
        
        $tttt=1;
        $datecurrent = date('YmdHis', current_time('timestamp'));
        $stringcurrentdate="$datecurrent";
        $intcurrentdate=(int)$stringcurrentdate;
        echo '<script>console.log("'.$intcurrentdate.'")</script>';
        
        
        foreach($select_limit_results as $row){
            $stringdate="$row->date";        
            $intdate=(int)$stringdate;
            echo '<script>console.log("'.$intdate.'")</script>';

            
            if($intdate<1000000000000){
            $intdate2=$intdate*100;
            $intdate=$intdate2;
            }
            if($intdate<$intcurrentdate){
            $wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_content` SET `view`=`view`+{$increase_count} WHERE `uid`='{$row->uid}'");
            echo '<script>console.log("'.$tttt.'")</script>';
            }
        }
    }
}

 

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 잘 해결된 것 같습니다 :D

  • 안녕하세요~^^

    프로그램 코드를 올려야 할 경우 반드시 에디터의 코드 스니펫 삽입 기능을 사용해주세요. (가독성이 좋아집니다.)

    그렇지 않으면 에러가 나는 코드로 바뀌거나 질의응답 시 의사소통에 문제가 있을 수도 있습니다.

     

    KBoard 자동 조회수 증가 플러그인을 개선해서 업데이트했습니다.

    게시글의 상태가 발행됨인 게시글에만 적용되도록 개선했습니다.

    즉, 게시글 목록 페이지에 표시되는 게시글에만 적용이 됩니다.

     

    워드프레스 관리자 -> 스토어 메뉴에서 설치하기 버튼을 눌러주시면 업데이트가 완료됩니다.

     

    업데이트를 할 수 없는 상황이라면

    FTP로 접속해서 /wp-content/plugins/kboard-auto-view-increase/kboard-auto-view-increase.php 파일에

    아래의 코드를 찾아서

    $search_limit_row = $wpdb->get_row("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE 1=1 ORDER BY `date` DESC LIMIT {$search_limit}, 1");
    if($search_limit_row){
    	$select_limit_results = $wpdb->get_results("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE `date`>='{$search_limit_row->date}' ORDER BY RAND() LIMIT {$select_limit}");
    	foreach($select_limit_results as $row){
    		$wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_content` SET `view`=`view`+{$increase_count} WHERE `uid`='{$row->uid}'");
    	}
    }

    아래의 코드로 교체해보세요.

    $search_limit_row = $wpdb->get_row("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE (`status`='' OR `status`='pending_approval') ORDER BY `date` DESC LIMIT {$search_limit}, 1");
    if($search_limit_row){
    	$select_limit_results = $wpdb->get_results("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE (`status`='' OR `status`='pending_approval') AND `date`>='{$search_limit_row->date}' ORDER BY RAND() LIMIT {$select_limit}");
    	foreach($select_limit_results as $row){
    		$wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_content` SET `view`=`view`+{$increase_count} WHERE `uid`='{$row->uid}'");
    	}
    }

    고맙습니다.

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