web-dev-qa-db-fra.com

Cron déclenche ma fonction à chaque visite de wp-admin

C'est un plugin MU que je développe, et je veux qu'il fonctionne toutes les heures. Malheureusement, il est exécuté chaque fois que je visite la page wp-admin d'un site. J'ai utilisé le plug-in Debug Bar avec le plug-in Cron et il est toujours dit que le prochain événement est du passé. Des idées?

add_action('admin_menu', 'dhg_cron_menu');
function dhg_cron_menu()
{
    add_options_page('NEW WPMS Stats', 'NEW WPMS Stats', 'manage-options', 'dhg-cron', 'dhg_cron_settings');
}

function dhg_cron_settings()
{
    if(!wp_next_scheduled('dhg_cron_hook'))
    {
        wp_schedule_event(time(), 'hourly', 'dhg_cron_hook');
    }
}

add_action('dhg_cron_hook', 'dhg_cron_get_stats');
function dhg_cron_get_stats()
{
    //  this is a custom function I use to log to a file for testing...
    log_wpms_stats("testing!");
}
4
danhgilmore

Une idée qui m'est venue a été d'utiliser la nouvelle API WP Heartbeat, par opposition à l'utilisation de cron. Demandez à votre plugin d'envoyer un appel à votre système de journalisation toutes les heures.

Le tutoriel de Pippin contient la majorité du code dont vous aurez besoin pour commencer.

1
Chris