【问题标题】:Wordpress wp_schedule_event - not returning the next scheduleWordpress wp_schedule_event - 不返回下一个时间表
【发布时间】:2013-11-14 06:23:26
【问题描述】:

我很难弄清楚这个问题。所以基本上,我写了一个插件..文件结构如下

-myplugin.php (init and includes myplugin-common.php )
-myplugin-admin.php (plugin menu item index and includes myplugin-part1.php and part2)
-myplugin-common.php
-myplugin-part1.php
-myplugin-part2.php

如果 cron 尚未启用,我有一个激活 cron 的功能.. 下面的示例(在 myplugin.php 中)

function myplugin_cron_activate() {

    if ( get_option( SCHEDULE_ENABLED ) !== false ) {
        if ( get_option(SCHEDULE_ENABLED) == 'true') {
            if (!wp_next_scheduled('wpo_cron_event2')) {

                $schedule_type = get_option(SCHEDULE_TYPE, 'weekly');

                wp_schedule_event(time(), $schedule_type, 'my_cron_event2');
                add_action('my_cron_event2', 'my_cron_action');

        }
        }
    }

现在 *my_cron_action* 在一个通用文件 myplugin-common.php 中。这很好,无论如何它都可以工作..

问题是,myplugin-part2.php 是一个用于启用或禁用调度程序的设置页面。当我启用它时.. 调用 *myplugin_cron_activate()* 函数。但是它不会激活 wordpress 中的 cron 功能。但是当我在管理员中转到插件主链接时 - 它被激活了。

请注意 myplugin-part1.php、myplugin-part2.php 都包含在 myplugin-admin.php 中。 myplugin-admin.php 包含 2 个选项卡并相应地加载这 2 个文件部分。

我仍然无法弄清楚为什么当我提交设置页面时调度程序没有被激活 - 是的,我正在 $POST 上调用该函数。但是当我点击管理页面的主链接时它会被激活..(因此我也无法显示下一个计划时间)

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    您需要添加每周计划

    function add_weekly_cron( $schedules ) {
            $schedules['weekly'] = array(
            'interval' => 604800,
            'display' => __('Once Weekly','beforeafter')
        );
        return $schedules;
    }
    add_filter( 'cron_schedules', 'add_weekly_cron' ); 
    

    另外,我认为您以错误的方式触发 wp-cron

    add_action('my_action_hook','my_cron_function');
    if( !wp_next_scheduled( 'my_cron function' ) ) {  
       wp_schedule_event( time(), 'weekly', 'my_action_hook' );  
    

    使用Cron View 调试 WP-CRON :)

    【讨论】:

    • 是的,我已经有了自定义的每周功能(以及随之而来的过滤器)。我现在要试试你的建议.. 谢谢 :) 除了我需要刷新页面以使调度程序滚动之外,其他一切都在工作。
    • 是的,wp-cron 依赖于对您网站的访问。您可以禁用它并通过系统 cron 触发 wp-cron.php :)
    猜你喜欢
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 2015-11-14
    相关资源
    最近更新 更多