Modifiez la fréquence à laquelle WordPress Auto-Updates Plugins

12

D'après ce que je comprends de la façon dont WordPress met à jour le noyau et les plugins, il est indiqué que toutes les 12 heures, il est mis à jour et recherche les mises à jour. Quand est-ce que l'heure est fixée? 12 heures à partir de l'installation initiale? Je pose cette question car, en utilisant le filtre de mise à jour automatique du plugin, add_filter( 'auto_update_plugin' ); , vous ne pouviez théoriquement que mettre des plugins à jour. fois, mais si cette heure ne tombe pas dans cette fenêtre de 12 heures, les plugins ne seront jamais mis à jour.

Laissant ainsi la question dans mon titre: Comment modifier la fréquence à laquelle WordPress recherche des mises à jour ou comment spécifier une heure spécifique pour la mise à jour automatique?

Pour ceux que ça intéresse, voici le filtre avec lequel je joue, vérifie si c'est lundi - vendredi de 8h à 17h:

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

Modifier En résumé, il semblerait que ce filtre soit exécuté chaque fois qu'un plug-in est mis à jour, plusieurs mises à jour de plug-in, plusieurs exécutions du filtre

    
posée Howdy_McGee 12.08.2014 - 21:02

2 réponses

8

Vous avez raison, Wordpress recherche les mises à jour de base et les plugins toutes les 12 heures, mais une meilleure façon de le dire serait: il vérifie les mises à jour si la dernière mise à jour date de plus de 12 heures.

Le paramètre 12 heures est codé en dur dans wp-includes/update.php

Les dernières dates mises à jour sont stockées dans la table wp_options et les options sont les suivantes:

_site_transient_update_core
_site_transient_update_plugins
_site_transient_update_themes

Étant donné que cette vérification ne se produit pas précisément après 12 heures, mais plutôt la prochaine fois que la condition est remplie (au moins 12 heures sont écoulées), vous ne manquerez pas la mise à jour.

    
réponse donnée LevanK 12.08.2014 - 22:34
5

Les fonctions correspondantes wp_update_plugins() et wp_maybe_auto_update() sont liés aux événements wp-cron du même nom, exécutés deux fois par jour.

Logiquement, le programme initial commencera à cocher à partir du moment de la première exécution. En raison de l’implémentation de wp-cron (qui n’est ni réel, ni lié à des visites de site, mais plutôt à une horloge de serveur), il "dérive" chaque fois que wp-cron se déclenche au-delà de l’heure à laquelle il est dû.

Les vérifications de mise à jour de plug-in sont également déclenchées plus souvent dans certaines zones administratives, telles que la liste des plug-ins (vous aurez donc moins de chances de consulter des informations obsolètes).

En tête, je ne vois pas de façon élégante de le placer dans un corridor temporel spécifique. Changer les horaires est assez facile, le compte de la dérive n’est pas tout à fait.

Si tel est le cas, il pourrait être préférable de le gérer avec un serveur réel et un outil externe pour la mise à jour, tels que la fonctionnalité de mise à jour de wp-cli ou la gestion des plugins via Composer.

    
réponse donnée Rarst 12.08.2014 - 22:31

Lire d'autres questions sur les étiquettes