web-dev-qa-db-ja.com

wp-adminにアクセスするたびに自分の関数を起動するcron

これは私が開発しているMUプラグインであり、私はそれを毎時実行することを望みます。残念ながら、それは私が任意のサイトのwp-adminページを訪れるたびに走っています。私はCronプラグインと一緒にDebug Barプラグインを使用しました、そしてそれは一貫して次のイベントは過去のものであると言っています。何か案は?

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

私が思いついたアイデアは、cronを使用するのではなく、新しいWP Heartbeat APIを使用することでした。あなたのプラグインがあなたのロギングシステムへの呼び出しを毎時発火させるようにしてください。

Pippinの チュートリアル には、始めるために必要なコードの大部分が含まれています。

1
Chris