我的functions.php中有一个函数abc()。我希望此功能每天仅运行一次。
我怎么确定是这样?
到目前为止,我了解到,当我使用钩子“ init”时,它将安排数千个日常事件。那么如何正确完成呢?
问候,
答案 0 :(得分:0)
您正在寻找的是所谓的cron-job。您可以这样创建一个cron作业:
add_action('wp_ajax_do_cron', [$this, 'doCron']);
add_action('wp_ajax_nopriv_do_cron', [$this, 'doCron']);
/**
* Ajax endpoint to be used as a cron url
*/
public function doCron()
{
$key = filter_input(INPUT_GET, 'key');
if ($key === 'dhsfvjusdfvu3vrju3vjuvgf') {
// Execute your function here
} else {
header('HTTP/1.0 403 Forbidden');
echo 'NOPE';
}
wp_die();
}
可以将Cron Job Execution定义为在Web主机配置中运行,或通过第三方服务来运行,例如:https://cron-job.org/en/基本上,您已经定义了要在doCron()中运行的功能。功能。可以将它们设置为在Web托管程序设置中每天运行。您还可以先通过访问网站网址来测试该功能,如下所示:http://example.com/wp-admin/admin-ajax.php?action=do_cron&key=dhsfvjusdfvu3vrju3vjuvgf。对于您自己的环境,您应该将密钥更改为随机。我的首选方法是老式的“额头与键盘”方法;)