Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress Cron作业_Php_Wordpress_Cron - Fatal编程技术网

Php WordPress Cron作业

Php WordPress Cron作业,php,wordpress,cron,Php,Wordpress,Cron,以下原因是什么: 计划外活动 及 添加行动“wp” 请看一下这段代码,它是一个简单的cron作业插件,每1分钟将数据插入数据库 <?php /* Plugin Name: Cron Job Description: My Cron Job Version: 4.0 Author: Bassem License: GPL */ ?> <?php //Add Interval [ Minute ] function cron_add_minute($schedules) {

以下原因是什么:

计划外活动

添加行动“wp”

请看一下这段代码,它是一个简单的cron作业插件,每1分钟将数据插入数据库

<?php
/*
Plugin Name: Cron Job
Description: My Cron Job
Version: 4.0
Author: Bassem
License: GPL
*/
?>

<?php
//Add Interval [ Minute ] 
function cron_add_minute($schedules) 
{
    // Adds once every minute to the existing schedules.
    $schedules['EveryOneMinute'] = array('interval' => 60,'display' =>( 'insert record into DB' ) );
    return $schedules;
}
add_filter( 'cron_schedules', 'cron_add_minute' );
//==================================
//Create a new CronJob
function cronStartActive() 
{
    if( !wp_next_scheduled( 'mycron' ) )
    {  
         wp_schedule_event(time(), 'EveryOneMinute', 'mycron' );  
    }
}
add_action('wp', 'cronStartActive');
//==================================

function cronStartDeactive(){   
    $timestamp = wp_next_scheduled ('mycron');
    wp_unschedule_event ($timestamp, 'mycron');
} 
register_deactivation_hook (__FILE__, 'cronStartDeactive');

//================================================================
function myWpTask()
{
    global $wpdb;
    $date=date('Y-m-d H:i:s');
    $query="insert into _testcron(added_on) values('$date')";
    $insert=$wpdb->query($query);
}
add_action ('mycron', 'myWpTask'); 
?>
代码运行良好,我遵循中的教程,但我需要了解一些要点:

cronStartDeactive函数的原因是什么?当我删除它时,cron作业仍然有效,那么使用它的目的是什么 添加动作“wp”、“cronStartActive”也是如此,当我评论它时,cron仍然有效。
如果您仔细阅读该文档,您会注意到,同时我们希望确保当插件被停用时,它是非计划的。所以基本上它的意思是。。当你停用插件时。。它应该先停止你的cronjob。@Mihai lorga当然我读过了,当你通过管理页面停用插件并停止它时,无论你是否编写cronStartDeactive,cron作业都会自动停止,….那么这个函数有什么用呢,这是我的问题它会自动停止,因为你停用了插件,这并不意味着cronjob在您的数据库中被标记为STOPPED。那么cronStartDeactive在DB中将其标记为STOPPED的优势是什么,因为一旦我停用插件,它将自动停止?就像当您使用微波炉时,您不让它完成,然后拔下它一样。下次你插上微波炉时,它会从你停止的地方开始。我想最好的做法是关掉电源,然后拔掉插头,你不这么认为吗?