Cron job to change CPT

时间:2021-04-23 作者:Don Day

我希望编写一个cron,在每晚午夜自动更改与特定CPT匹配的任何项目的自定义帖子类型。

例如:我有一个CPT叫做;“成员”;但在每天午夜左右,我希望用CPT将任何项目翻转为常规的“CPT”;“发布”;岗位类型。我到处找,一直没能找到答案。

非常感谢您的帮助。

1 个回复
SO网友:WPhil

尝试以下操作:

if (!wp_next_scheduled(\'update_members_types\')) {
    wp_schedule_event( time(), \'daily\', \'update_members_types\' );
}
add_action ( \'update_members_types\', \'update_member_post_type\' );

function update_member_post_type() {

    $args = array(
        \'post_type\' => \'member\',
        \'posts_per_page\' => \'1\',
        \'date_query\' => array(
            array(
                \'after\' => strtotime( \'-24 hours\' )
            )
        )
    );
    $members = get_posts( $args );

    if ( $members ) {
        foreach ( $member as $members ) {
            set_post_type( $member->ID, \'post\' );
        }
    }

} 
Wordpress有一个功能,允许您更新帖子ID的帖子类型。

https://developer.wordpress.org/reference/functions/set_post_type/

请注意,cron任务不是计划在每天午夜运行,而是从初始化时起每24小时运行一次。

相关推荐

在同一数据库上运行多个实例时的Cron作业

我有一个用户使用我的插件,该插件有多个AWS实例托管WP并指向同一个数据库。我的插件的工作之一就是运行大量的小作业。我在考虑使用wp_schedule_single_event 安排作业,但我不确定如何处理多个实例。每个作业都有唯一的参数,因此不会有任何重复。Question:每个实例是否会尝试运行相同的作业,或者WordPress是否能够解决此问题,以便每个作业只运行一次?