2017-04-22 10 views
0

과도기를 만료하도록 업데이트 쿼리를 작성하고 싶습니다. 나는 wordpress 선택권 테이블에서 1에 그들의 시간을 upadte 할 것이다.wordpress transients를 만료시키는 법

트랜 전트가 re_compare이라는 이름으로 시작하고 매개 변수가 변경된 후 휴식합니다. 업데이트에 대한

내 쿼리가 작동하지

$wpdb->update( 
    'options', 
    array( 
     'option_value' => '1', // string 

    ), 
    array('option_name' => '%re_compare%') 

); 

그것입니다. 기본적으로 기존의 일시적 항목을 제거/만료 시키길 원합니다.

하지만 옵션 테이블에서 임시 항목을 삭제해도 임시 관리자 플러그인에 계속 표시됩니다. 만료 시간을 1 초로 설정하려고 생각했습니다.

답변

3

일반 SQL을 통해 옵션 테이블에서 과도를 삭제하거나 수정하는 것은 좋지 않습니다. 왜? 데이터베이스는 실제로 일시적으로 저장되는 기본 대체 위치이기 때문에 기본 위치는 아닙니다. 사용할 수있는 개체 캐시가 있으면 데이터베이스에 저장되지 않고 일시적 저장됩니다. 따라서, 귀하의 경우에는 옵션 테이블에서 삭제하는 것이 좋지만 실제로는 오브젝트 캐시에서 읽습니다.

일반적으로 일시적인 만료에 대해 걱정할 필요가 없습니다. WordPress에는 자동으로 제거되는 가비지 컬렉터가 있습니다. 과도의 데이터가 부실되었고, 이전에이 만료보다이를 업데이트해야하는 경우

,이에 대한 API 함수를 사용

delete_transient('your_transient_name'); 

또한 만료 시간이 최대 있음을 유의하시기 바랍니다 일시적으로 살 수있는 기간. 이 기간이 지나면 저장된 값이 반환되지 않습니다. 그러나, 짧은에,

그래서 캐시 퇴거, 데이터베이스 업그레이드 등을 반대하기 때문에, 만료 시간 전에 오래 사용하지 못할 수 있습니다 :

  • 만료 시간은 미래의 최대 포인트 때 과도 호출이 만료 시간이 오기 전에이 과도 작업을위한 때문에 다른 이유로, 긴 엄지 손가락의

규칙을 손실 될 수 있습니다

  • 값을 반환 중지됩니다

    1. , 당신은 절대적으로 데이터를하고, 대부분 (옆으로 변경 한 경우가 더 이상
    2. 이 API 기능을 삭제 유효하지 않으려는 경우에 API 기능을
    3. 설정 만료 시간을 당신의 과도를 설정) 다시
    4. 을 재생 아니면 자연스럽게 만료 만료 시간이 올 때까지
    5. 그것은 가비지 수집 WP가 될 것입니다 나중에
    6. 그들이 항상 사용할 수 기대하지 마십시오만을위한 기다립니다. 그들은 유지가 보장되지 않습니다.