Cron:每小时更新四篇帖子

时间:2021-08-30 作者:Dan

我有一个功能,可以根据自定义字段自动更新帖子内容,如下所示:

function update_content(){
    $mycustomfield = get_post_meta( get_the_ID(), \'customfield\', true);
    
    $post = array();
    $post[\'ID\'] = get_the_ID();
    $post[\'post_content\' ] = $mycustomfield ;
    $post[\'post_title\' ] = $mycustomfield ;
    
    // Update the post into the database
    wp_update_post( $post );
我们只更新自定义字段以生成内容。目前,我们在save\\u post hook上手动启动此功能,但文章太多了,我们现在需要一个cron来自动化此功能:

每小时处理4篇帖子,直到所有帖子都完成,然后重新开始。

如何制作,谢谢

1 个回复
SO网友:PantelD

此代码将每小时调用您的函数。

// The \'if\' condition is needed to make sure the scheduler runs only once
if ( ! wp_next_scheduled( \'my_custom_action\' ) ){
    wp_schedule_event( time(), \'hourly\', \'my_custom_action\' );
}

// Here we create our own action to attach to the scheduler
add_action( \'my_custom_action\', \'update_content\' );
还建议在停用插件时清除所有计划的事件,如下所示:

// The deactivation hook is executed when the plugin is deactivated
register_deactivation_hook( __FILE__, \'my_deactivation\' );
function my_deactivation() {    
    wp_clear_scheduled_hook( \'my_custom_action\' );
}
请注意,如果您的网站没有访问者,cron将不会运行here:enter image description here

您可以阅读更多关于wp_schedule_event() here.

相关推荐

WP维护模式和外部cron作业

我正在使用此代码add_action( \'wp_loaded\', function() { global $pagenow; // - - - - - - - - - - - - - - - - - - - - - - // Turn on/off you Maintenance Mode (true/false) define(\'IN_MAINTENANCE\', true); // - - -