추가필드 관련

안녕하세요 컨텍트폼 스킨에서 몇가지 항목을 추가하여 사용하고있는데

관리자페이지에서 컨텐트폼의 내용을 수정을 하면 실제 데이터베이스에서 이전목록을 삭제하지않고 새로입력한 목록을 추가합니다.

그래서 상세보기에서 가장 최근에 입력한 내용이 표출되는데

리스트에서 추가한 항목을 검색으로 사용하면 이전에 입력한 내용까지 함께 검색이됩니다.

어떻게 수정해야될지를 몰라 요청드립니다.

 

https://imgur.com/a/zHWP43B - 데이터베이스 등록된 내용

 

리스트에서 검색시 추가한 소스는 아래와 같습니다.

<option value="kboard_option_examarea"<?php if(kboard_target() == 'kboard_option_examarea'):?> selected<?php endif?>>응시지역</option>

 

수고하세요!

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

    현재 사용 중이신 KBoard 플러그인의 버전이 어떻게 되시는지요?

    따로 코드를 수정하셨는지요?

    원래대로라면 게시글에 option 값이 있으면

    기존의 데이터는 삭제되고 새로운 데이터를 추가하도록 되어 있습니다.

    저희 고객지원 쪽 이메일로 워드프레스 관리자 계정과 FTP 접속 정보를 보내주시면 점검해드리겠습니다.

    고맙습니다.

  • 저희 고객지원 쪽 이메일로 보내주신 정보로 확인해보니

    페이지에 적용된 KBoard 게시판 플러그인의 버전이 5.3.4 입니다.

    현재 공식적인 KBoard 게시판 플러그인의 최신 버전은 5.3.9 입니다.

    말씀하신 부분은 KBoard 게시판 플러그인과 댓글 플러그인 모두 최신 버전으로 업데이트하시면 해결되실 듯합니다.

     

    임시방편으로

    FTP로 접속해서 /wp-content/plugins/kboard/class/KBContentOption.class.php 파일에

    아래의 코드(기존의 코드)를

    public function __set($key, $value){
    	global $wpdb;
    	if($this->content_uid){
    		$key = sanitize_key($key);
    		$value = esc_sql($value);
    		if($value){
    			$wpdb->query("INSERT INTO `{$wpdb->prefix}kboard_board_option` (`content_uid`, `option_key`, `option_value`) VALUES ('$this->content_uid', '$key', '$value') ON DUPLICATE KEY UPDATE `option_value`='$value'");
    		}
    		else{
    			$wpdb->query("DELETE FROM `{$wpdb->prefix}kboard_board_option` WHERE `content_uid`='$this->content_uid' AND `option_key`='$key'");
    		}
    		$this->row->{$key} = $value;
    	}
    }

    아래의 코드(최신 버전의 코드)로 교체해두었습니다.

    public function __set($key, $value){
    	global $wpdb;
    	if($this->content_uid){
    		$key = sanitize_key($key);
    		$value = esc_sql($value);
    		if($value){
    			$count = $wpdb->get_var("SELECT COUNT(*) FROM `{$wpdb->prefix}kboard_board_option` WHERE `content_uid`='$this->content_uid' AND `option_key`='$key'");
    			if(is_array($value)){
    				if($count){
    					$wpdb->query("DELETE FROM `{$wpdb->prefix}kboard_board_option` WHERE `content_uid`='$this->content_uid' AND `option_key`='$key'");
    				}
    				foreach($value as $option){
    					$wpdb->query("INSERT INTO `{$wpdb->prefix}kboard_board_option` (`content_uid`, `option_key`, `option_value`) VALUES ('$this->content_uid', '$key', '$option')");
    				}
    			}
    			else{
    				if($count){
    					$wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_option` SET `option_value`='$value' WHERE `content_uid`='$this->content_uid' AND `option_key`='$key'");
    				}
    				else{
    					$wpdb->query("INSERT INTO `{$wpdb->prefix}kboard_board_option` (`content_uid`, `option_key`, `option_value`) VALUES ('$this->content_uid', '$key', '$value')");
    				}
    			}
    		}
    		else{
    			$wpdb->query("DELETE FROM `{$wpdb->prefix}kboard_board_option` WHERE `content_uid`='$this->content_uid' AND `option_key`='$key'");
    		}
    		$this->row->{$key} = $value;
    	}
    }

    고맙습니다.

  • 최신버전이 아니었군요 ㅠ

    아 정말 감사합니다!

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