2014-09-25 2 views
0

Wordpress update_option 함수에 난처한 문제가 있습니다.Wordpress update_option false가 반환됩니다.

이 줄은 false를 반환합니다.

var_dump(update_option('category_light_box_'.$tag, $lightbox_pid)); 

경우 $tag$lightbox_pid은 번호를 확인합니다.

이 줄의 일부인 함수는 edit_category 후크/필터와 함께 호출됩니다.

wp_options 테이블에서 복구 명령문을 실행하고 서버를 다시 시작했지만 아무 효과가 없습니다. SQL이 사용되는 것을 확인하기위한 방법이 있습니까? 누구든지 디버깅 방법을 제안 할 수 있습니까?

편집

: 전체 기능 코드 :

public static function save_categories ($tag) { 
     echo 'save'; 

     if (preg_match('/^[0-9]{1,}$/', $_POST['category-lightbox']) && $_POST['category-lightbox'] !== '0') { 
      $lightbox_pid = $_POST['category-lightbox']; 

      var_dump(update_option('category_light_box_'.$tag, $lightbox_pid)); 
     } 
    } 

및 조치 호출 :

add_action('edit_category', array ('ib_lightbox_application', 'save_categories')); 

편집 : 내 설정 파일에 define('SAVEQUERIES', true);을 추가하고 $wpdb->queries을 var_dumped 한

wp_update를 호출 한 후 배열. 업데이트가 생성해야하는 SQL 문은 존재하지 않으므로 update_option이 어떻게 든 유효성 검사에 실패하는 것처럼 보입니다.

+0

당신에게 확인 $의 lightbox_pid이 비어 있지 않은 있습니다 카테고리마다 고유 한 옵션에 대한 필요성을 제거하기 위해 다음과 같이

나는 나의 기능을 재 작성? –

+0

'update_option()'은 갱신이 실패하면'false'를 리턴하고 변경되지 않으면'false'를 리턴합니다. 이전 값을 확인 했습니까? –

+0

$ linebox_pid가 입력됩니다 (테스트 목적으로 '30'으로 설정). 문제가 발생한 줄 바로 앞에서 에코됩니다. category_light_box_로 시작하는 옵션은 전혀 없습니다. –

답변

0

확인 번호가없는 update_options의 첫 번째 인수에 대한 문서화되지 않은 요구 사항이 있음을 알게되었습니다 (이유는 모르겠습니다). $ 태그는 항상 숫자입니다.

public static function save_categories ($tag) { 

     if (preg_match('/^[0-9]{1,}$/', $_POST['category-lightbox']) && $_POST['category-lightbox'] !== '0') { 
      $lightbox_pid = $_POST['category-lightbox']; 

      $lightboxes = get_option('category_light_box', ''); 
      $lightboxes = json_decode($lightboxes, true); 
      $lightboxes[$tag] = $lightbox_pid; 
      $lightboxes = json_encode($lightboxes); 

      update_option('category_light_box', $lightboxes); 
     } 
    } 
관련 문제