我在WordPress的PHP和cron完全新。所以,我有个任务。我需要从表单中获取数据并将其放入cron函数中。
这是我的代码。我创建了自定义插件页面在WordPress的管理面板,并尝试运行此代码。实际上,如果我输入文章ID而不是变量$post_id,代码就可以工作;
function cron_add_one_minute( $schedules ) {
$schedules['one_minute'] = array(
'interval' => 60,
'display' => 'One in minute'
);
return $schedules;
};
if(!empty($_POST) && ($_POST['btnaup']) && !wp_next_scheduled( 'update_post' )) {
wp_schedule_event( time(), 'one_minute', 'update_post');
}
if(isset( $_POST['btnaup'])) {
$post_id = $_POST['id'];
$b = $_POST['days'];
}
add_action( 'update_post', 'update_my_post', 10, 1);
function update_my_post( $post_id ){
$time = current_time('mysql');
wp_update_post( array (
'ID' => $post_id,
'post_date' => $time,
'post_date_gmt' => get_gmt_from_date( $time ),
'post_modified' => $time,
'post_modified_gmt' => get_gmt_from_date($time),
) );
}
1条答案
按热度按时间bejyjqdl1#
根据
wp_schedule_event
的docs,第四个参数(您当前没有使用)是$args
数组,包含要传递给挂接的回调函数的参数。数组中的每个值都作为单独的参数传递给回调。
数组键将被忽略。
默认值:array()
这意味着您应该能够用途:
你的
update_my_post
函数应该可以正常工作了。