7

我需要有关 wp-cron 的详细信息。我用于wp_schedule_event 自动发送电子邮件。

wp_schedule_event仅在用户访问我们的网站时触发。如何让 cron 自动运行?

4

5 回答 5

13

wp_cron并不名称所暗示的那样一直在后台运行。对于像 WordPress 这样的 Web 应用程序来说,这种调度是不可能的,因为 WordPress 脚本只在有人查看站点时运行,而在没有人查看时它不会运行。取而代之的是,当 WordPress 脚本启动时,会检查 cron 值,如果一个(过期)到期,它就会被执行。它可能会迟到几分钟或几个小时,但这就是它的工作方式。The wp_cron基本上,工作一有机会就运行。

如果您想在有人访问该站点时运行脚本,那么您根本不需要wp_cronwp_cron当有人访问时不会触发。这是一个模糊计时器。要在有人访问时运行,您将不得不考虑一些问题。您可以在主题的 functions.php 中放置一个函数,但它会在每次页面加载时运行,而不仅仅是在访问的第一次加载时运行。当有人登录时,您可以挂钩wp_login并运行您的功能。您将必须首先决定什么是“访问”。

于 2012-10-15T14:10:47.637 回答
13

它将在预定时间之后的第一次访问中运行。
1.- 是的,自动运行,但由访问者触发。
2.- 按计划发送电子邮件就足够了。


对于真正的 cron 行为,您可以使用运行脚本crontab

crontab -e
wget -q http://domain.com/wp-content/some-path/your-script.php

-q:安静(无输出)。只需运行脚本。否则你的服务器中会有很多文件(wget pull files)

提示:http ://www.thegeekstuff.com/2011/07/php-cron-job/


使用 cpanel:http ://wiki.hostbillapp.com/index.php?title=Settings:_cPanel:_Cron_job

在此处输入图像描述

于 2012-10-15T14:11:38.260 回答
4

似乎每个人都刚刚回答了 *nix cron 的设置方式。真正的答案应该是特定于wordpress的。在 wp-config.php 中有一个设置可以完成

define('DISABLE_WP_CRON', 'true');

现在,如果您可以像 Igor Parra 回答的那样配置 *nix cron,则后台和偏移 cron 作业将不再运行,因为在控制面板或 crontab 中设置的时间将生效。

于 2014-09-19T06:22:55.737 回答
1

在文件中写入功能后,您还需要设置 cron ..

参考:http ://wp.tutsplus.com/articles/insights-into-wp-cron-an-introduction-to-scheduling-tasks-in-wordpress/

于 2012-10-15T13:57:48.683 回答
0

真实的东西总是更可取的,但它可以在 Wordpress(纯 PHP)中完成:

http://pippinsplugins.com/improved-cron-plugin-review/

于 2013-02-26T00:40:42.570 回答