我读了几遍才明白,我不确定我的解释是否正确。无论如何,这是我的解释(如果我弄错了,很抱歉)。。。
您有一个用于更新某种文件的CRON作业。当有人以您指定的频率访问站点(无论是否为管理员)时,将运行此CRON作业。管理员可以从插件设置中关闭CRON作业。您不想包含任何不必要的包含。
我会将其分为两个单独的部分,首先是设置部分,其中我会设置一个开/关标志,如下所示:
将标志定义为选项设置,并在插件激活时将其设置为on(1):
register_activation_hook(__FILE__, function(){
add_option(\'xyz_cron_status\', 1);
}
此选项的值将通过插件设置菜单访问的表单以常见的Wordpress插件方式进行更改。
接下来,在插件设置代码中定义CRON作业(不包含is\\u admin()函数),如下所示:
xyz_cron_option = get_option(\'xyz_cron_status\');
if ( xyz_cron_option ){
add_filter(\'cron_schedules\', \'xyz_2weekly\');
add_action(\'wp\', \'xyz_cron_settings\');
add_action(\'xyz_cron_hook\', \'xyz_update_files\');
}
其中,xyz\\u cron\\u设置如下:
/**
* Create a hook called xyz_cron_hook for this plugin and set the time
* interval for the hook to fire through CRON
*/
function xyz_cron_settings() {
//verify event has not already been scheduled
if ( !wp_next_scheduled( \'xyz_cron_hook\' ) ) {
wp_schedule_event( time(), \'xyz_2weekly\', \'xyz_cron_hook\' );
}
}
其他功能如代码所示:
function xyz_2weekly( $schedules ) {
...
}
以及
function xyz_update_files() {
...
}
我希望这会有所帮助。