计划的POST删除-无法传递cron参数

时间:2019-08-22 作者:StefanR

感谢所有看过的人。我已经花了无数个小时试图让这项工作,但无论我尝试了什么,它仍然不起作用。希望我错过了一些简单的东西,但我被卡住了。。。

下面是我在提交页面上的代码,我在其中添加了一个新页面和一个cron作业,以在将来删除它:

$seconds = time() + $_POST["days"] * 86400;
wp_schedule_single_event($seconds, \'crondelete\', $new_post_id );
下面是函数中的相关代码。php:

add_action( \'crondelete\', \'delete_page_in\');
function delete_page_in($args) {
wp_delete_post($args);
}
cron部分工作正常:enter image description here

但看起来参数没有传递给函数,所以一旦我运行cron作业,什么都不会发生(页面不会删除)。

1 个回复
最合适的回答,由SO网友:Mike Baxter 整理而成

将代码与Wordpress函数进行比较wp_schedule_single_event, 您似乎未能指示将传递参数。

也许下面的代码版本适合您。

add_action( \'crondelete\', \'delete_page_in\',10,1);
wp_schedule_single_event($seconds, \'crondelete\', array($new_post_id ));
请注意add_action 现在包括两个额外参数:10=优先级,1=要传递的接受参数。

相关推荐

如何确保WP-Cron工作循环通过所有帖子?

我正在使用WP Crontrol,每天运行一些CRON作业来检查帖子的年龄。如果帖子提前2天发布,则会被删除。这是可行的,但由于某种原因,只有三天以上的帖子被删除了。还有一些仍在出版中。这一定是因为网站上大约有3000个帖子。有没有办法让我的CRON工作更有效率?以下是我运行的当前代码:class EventsWPCron { public function __construct() { if ( ! wp_next_scheduled( \'