WordPress 자동 업데이트 플러그인 빈도 변경 8시-오후 5 시인 지

WordPress가 핵심 및 플러그인을 업데이트하는 방법에 대한 나의 이해에서 12 시간마다 업데이트가 필요합니다. 그 시간은 언제 정해 집니까? 최초 설치 후 12 시간? 플러그인 자동 업데이트 필터를 사용 add_filter( 'auto_update_plugin' );하면 이론적으로 플러그인이 특정 시간 사이에만 업데이트 할 수 있기 때문에 특정 시간이 12 시간 창에 빠지지 않으면 플러그인이 업데이트되지 않습니다.

따라서 내 제목에 질문을 남겨 두십시오. WordPress에서 업데이트를 찾는 빈도를 변경하거나 자동 업데이트 할 때 특정 시간을 지정하는 방법은 무엇입니까?

관심있는 사람들을 위해 여기에 내가 엉망인 필터가 있으며 월요일-금요일 오전 8시-오후 5 시인 지 확인합니다.

function maybe_update_plugins(){
    date_default_timezone_set('Your Timezone Here');
    $localAssoc = localtime(time(), true);
    $update = false;

    /***
    /* tm_wday[0] = Sunday
    /* tm_wday[6] = Saturday
    ***/
    if(
      $localAssoc['tm_wday'] > 0 && $localAssoc['tm_wday'] < 6 &&
      $localAssoc['tm_hour'] > 7 && $localAssoc['tm_hour'] < 17
    ){
        $update = true;
    }

    return $update;
}
add_filter( 'auto_update_plugin', 'maybe_update_plugins' );

편집 깔끔한 (!) 참고로, 그것은이 필터처럼 실행할 때마다 수행하는 플러그인 업데이트, 여러 플러그인 업데이트, 필터의 여러 실행



답변

맞습니다. WordPress는 12 시간마다 코어 및 플러그인 업데이트를 확인하지만 더 나은 방법은 마지막 업데이트가 12 시간 이상 전에 업데이트를 확인하는 것입니다.

12 시간 설정은 하드 코딩되어 있습니다 wp-includes/update.php

마지막 업데이트 날짜는 wp_options표에 저장되며 옵션은 다음과 같습니다.

_site_transient_update_core
_site_transient_update_plugins
_site_transient_update_themes

이 검사는 12 시간 후에 정확하게 수행되지 않지만 다음에 조건이 충족 될 때 (최소 12 시간이 지나면) 업데이트를 놓치지 않습니다.


답변

관련 기능 wp_update_plugins()wp_maybe_auto_update(), 같은 이름의 WP-크론 이벤트에 매혹 회 일정에 따라 실행.

논리적으로 초기 일정은 첫 실행 시간부터 시작됩니다. wp-cron 구현 (실제 cron이 아니고 서버 시계가 아닌 사이트 방문에 의해 분류되지 않음)으로 인해 실제 wp-cron이 예정된 시간을 초과하여 실행될 때마다 “드리프트”됩니다.

플러그인 업데이트 확인은 플러그인 목록과 같은 특정 관리 영역에서 더 자주 트리거되므로 오래된 정보를 볼 가능성이 적습니다.

내 머리 위에 나는 특정 시간 복도에 넣을 우아한 방법을 보지 못합니다. 일정 변경은 매우 쉽지만 드리프트를 설명하는 것은 쉽지 않습니다.

이것이 어떤 방식 으로든 불명확 한 요구 사항 인 경우 실제 서버 크론 및 실제 업데이트를위한 외부 도구 (예 : wp-cli 업데이트 기능 또는 Composer를 통한 플러그인 관리)로 처리하는 것이 좋습니다.


답변