【问题标题】:Can't access WP functions in cron even though wp-load.php included即使包含 wp-load.php 也无法访问 cron 中的 WP 功能
【发布时间】:2015-10-14 23:17:42
【问题描述】:

我创建了一个通过 cron 运行的文件,但不幸的是,它似乎找不到某些功能。 wp-load.php 是必需的,但是当我尝试访问一些函数时,包括 wp_create_category 和 wp_category_exists,我返回未定义的函数。这是使用默认的 wp-cron.php 页面,所以我不确定出了什么问题。我是否错过了在 Wordpress 中使用 crons 的内容?

【问题讨论】:

    标签: php cron wordpress


    【解决方案1】:

    如果您使用默认 cron 选项卡中的 WordPress 功能,那么实现该功能的最佳方法是使用 WordPress REST API。

    查看它的文档here

    否则 WordPress 提供了一种使用 wp_cron(); 在内部实现 cron 作业的方法,请查看它的文档 here

    if ( ! wp_next_scheduled( 'my_task_hook' ) ) {
      wp_schedule_event( time(), 'hourly', 'my_task_hook' );
    }
    
    add_action( 'my_task_hook', 'my_task_function' );
    
    function my_task_function() {
      wp_mail( 'your@email.com', 'Automatic email', 'Automatic scheduled email from WordPress.');
    }
    

    【讨论】:

    • 由于他们不使用 WP 前端,典型的 wp_cron 功能不是一个选项。我必须获得批准才能添加一个新插件,并看看它是否能与我们的系统一起使用(它是高度定制的 WP 版本,很多插件在我们的设置中无法正常运行)。
    • @RhoVisions 在标准 WordPress 安装上,REST API 应该可以解决问题,包括 WordPress 核心文件是一种非常糟糕的做法。
    • 我知道,除非绝对必要,否则我讨厌包含文件(我不得不在自定义代码上执行一两次)。就像我说的,必须在链上运行新插件。
    猜你喜欢
    • 2018-09-03
    • 2012-12-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多