每天仅执行一次功能

时间:2019-03-21 11:55:48

标签: wordpress cron

我的functions.php中有一个函数abc()。我希望此功能每天仅运行一次。

我怎么确定是这样?

到目前为止,我了解到,当我使用钩子“ init”时,它将安排数千个日常事件。那么如何正确完成呢?

问候,

1 个答案:

答案 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。对于您自己的环境,您应该将密钥更改为随机。我的首选方法是老式的“额头与键盘”方法;)