WordPress Eklentilerini Otomatik Güncelleme Sıklığını Değiştirme


17

WordPress'in çekirdek ve eklentileri nasıl güncellediğini anladığımdan 12 saatte bir çıkıyor ve güncellemeleri arıyor. Bu saat ne zaman ayarlanır? İlk kurulumdan 12 saat sonra mı? Bunu soruyorum çünkü eklenti otomatik güncelleme filtresini kullanarak add_filter( 'auto_update_plugin' );teorik olarak sadece eklentilerin belirli zamanlar arasında güncellenmesine izin verebilirsiniz, ancak bu süre 12 saatlik pencereye düşmezse eklentiler asla güncellenmeyecektir.

Böylece, başlığımda soruyu bırakarak, WordPress'in ne sıklıkta güncelleme aradığını veya otomatik güncelleme için belirli bir zamanı nasıl belirleyeceğimi değiştirmek nasıl olur?

İlgilenenler için, uğraştığım filtre, Pazartesi - Cuma 08: 00-17: 00 arasında olup olmadığını kontrol ediyor:

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' );

Düzenleme Düzgün bir sidenote olarak, bu filtre bir eklenti güncellemesi, birden fazla eklenti güncellemesi, filtrenin birden çok çalıştırılmasında çalıştırılıyor gibi görünüyor

Yanıtlar:


10

Doğru, Wordpress her 12 saatte bir çekirdek ve eklentiler için güncellemeleri kontrol eder, ancak bunu söylemenin daha iyi bir yolu olabilir: son güncelleme 12 saatten fazla ise güncellemeleri kontrol eder.

12 saatlik ayar sert kodlanmıştır wp-includes/update.php

Son güncellenen tarihler wp_optionstabloda saklanır ve seçenekler şunlardır:

_site_transient_update_core
_site_transient_update_plugins
_site_transient_update_themes

Bu kontrol 12 saat sonra tam olarak gerçekleşmediğinden, bir dahaki sefere koşul yerine getirildiğinde (en az 12 saat geçtikten sonra) güncellemeyi kaçırmazsınız.


Tamam, bu nedenle cevabınızı ve @Rarst'ı bir araya getirdiğinizde, bir koşulun her karşılanışında (bir sayfa veya belirli bir sayfa her görüntülendiğinde sesler gibi), güncellemelerin en son ne zaman kontrol edildiğini görmek için bir test tetikler; otomatik güncellemeyi çalıştırın. Filtreyi kullanarak, gerçekten bir fırsat penceresi yok.
Howdy_McGee

5

İlgili fonksiyonlar wp_update_plugins()vewp_maybe_auto_update() aynı adı taşıyan wp-cron olaylarına, günde iki kez programlanarak bağlanır.

Mantıksal olarak, ilk program ilk çalıştırma zamanından itibaren işaretlenmeye başlayacaktır. Wp-cron uygulaması (gerçek cron olmamak ve sunucu saati yerine site ziyaretleri tarafından tetiklenmemesi) nedeniyle, gerçek wp-cron zamanı geldiğinde tetiklendiğinde "sürüklenir".

Eklenti güncelleme kontrolleri, eklenti listesi gibi belirli yönetici alanlarında daha sık tetiklenir (böylece eski bilgilere bakma olasılığınız daha düşüktür).

Başımın üstünde, belirli bir zaman koridoruna koymanın zarif bir yolunu görmüyorum. Programları değiştirmek oldukça kolaydır, sapma hesabı tam olarak değildir.

Bu herhangi bir şekilde yanlış kritik bir gereksinimse, gerçek sunucu cron ve wp-cli güncelleme işlevselliği veya Composer aracılığıyla eklentileri yönetme gibi gerçek güncelleme için harici araçla daha iyi ele alınabilir.


Görev açısından kritik değildir, wp-cronancak yalnızca belirli yönetici sayfası görünümlerini mi yoksa normal sayfa görüntülemelerini mi tetikler? Teşekkürler!
Howdy_McGee

1
@Howdy_McGee wp-cron hemen hemen her şey tarafından tetiklenir ( initkanca ateşleme)
Rarst
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.