私はこの問題を理解するのに苦労しています。基本的に、私はプラグインを書きました..ファイル構造は次のとおりです
-myplugin.php (init and includes myplugin-common.php )
-myplugin-admin.php (plugin menu item index and includes myplugin-part1.php and part2)
-myplugin-common.php
-myplugin-part1.php
-myplugin-part2.php
まだ有効になっていない場合にcronをアクティブにする機能があります..以下の例(これはmyplugin.php内にあります)
function myplugin_cron_activate() {
if ( get_option( SCHEDULE_ENABLED ) !== false ) {
if ( get_option(SCHEDULE_ENABLED) == 'true') {
if (!wp_next_scheduled('wpo_cron_event2')) {
$schedule_type = get_option(SCHEDULE_TYPE, 'weekly');
wp_schedule_event(time(), $schedule_type, 'my_cron_event2');
add_action('my_cron_event2', 'my_cron_action');
}
}
}
*my_cron_action* は共通ファイルmyplugin-common.php内にあります。これは問題なく、とにかく動作します..
問題は、myplugin-part2.phpがスケジューラを有効または無効にする設定ページであることです。有効にすると、*myplugin_cron_activate()* 関数が呼び出されます。ただし、wordpress の cron 機能は有効になりません。しかし、管理者のプラグインのメイン リンクに移動すると、有効になります。
myplugin-part1.php と myplugin-part2.php の両方がmyplugin-admin.php内に含まれていることに注意してください。myplugin-admin.phpは 2 つのタブを保持し、それに応じてファイルのこれら 2 つの部分をロードします。
設定ページを送信したときにスケジューラがアクティブにならない理由がまだわかりません-はい、$ POSTで関数を呼び出しています。しかし、管理ページのメインリンクをクリックするとアクティブになります..(このため、次のスケジュール時間も表示できません)