web-dev-qa-db-ja.com

毎時ルーチンが起動しない(wp_schedule_event())

.orgサイトからの1時間ごとのwp_schedule_eventの例のこれは実際にコピー/貼り付けされたバージョンですそれは動いていません…そして私はそれを「誘発する」訪問者がいることを知っています。それが行くかどうかを確認するために1時間待つのはそのような苦痛です。

誰かが私が間違っているところを私に言うことができますか?私が考えることができる唯一のことは私がテーマでそれを動かしているということです、そして多分それはプラグイン設定でだけうまくいくでしょうか? 道に迷いました。

//set up hourly fetching of symbiocards
register_activation_hook( __FILE__, 'symbiostock_chron_activation' );
add_action( 'symbiostock_twicedaily_symbiocard_update', 'update_symbiocards' );

function symbiocards_activation() {
    if ( !wp_next_scheduled( 'symbiocards_hourly_event' ) ) {
        wp_schedule_event( time(), 'hourly', 'symbiocards_hourly_event');
    }
}
add_action('wp', 'symbiocards_activation');

function update_symbiocards() {

    $update = new network_manager();
    $sites  = $update->get_connected_networks();
    foreach ( $sites as $site ) {
        $update->fetch_symbiocard( $site[ 'address' ] );
    } //$sites as $site

    symbiostock_save_network_info();

    update_option('symbiocards_last_update', current_time( 'mysql' ));

    wp_mail( get_bloginfo( 'admin_email' ), '[symbiostock_network_update] Network Symbiocards Updated - ' . current_time( 'mysql' ), 'Network Symbiocards Updated - ' . current_time( 'mysql' ) );
}
3
user1915665

コード例では、

wp_schedule_event( time(), 'hourly', 'symbiocards_hourly_event');

しかし、定義されているsymbiocards_hourly_eventフックはありません。

現在のテーマディレクトリのfunctions.phpファイルで使用している場合は、代わりにこのスニペットを試してください。

add_action( 'wp', 'symbiocards_activation' );
add_action( 'symbiocards_hourly_event', 'update_symbiocards' );

function symbiocards_activation() {
    if ( !wp_next_scheduled( 'symbiocards_hourly_event' ) ) {
        wp_schedule_event( time(), 'hourly', 'symbiocards_hourly_event' );
    }
}

function update_symbiocards() {
    wp_mail( get_bloginfo( 'admin_email' ), '[symbiostock_network_update] Network Symbiocards Updated - ' . current_time( 'mysql' ), 'Network Symbiocards Updated - ' . current_time( 'mysql' ) );
}

wp_mail()部分が機能しており、正しいEメールアドレスを使用していることを自分自身に納得させるべきです。

問題をデバッグするために使用できる優れたcronマネージャープラグインがたくさんあります。これは、たとえばFFF Cron Managerからのビューです。

cron view

10
birgire