我希望编写一个cron,在每晚午夜自动更改与特定CPT匹配的任何项目的自定义帖子类型。
例如:我有一个CPT叫做;“成员”;但在每天午夜左右,我希望用CPT将任何项目翻转为常规的“CPT”;“发布”;岗位类型。我到处找,一直没能找到答案。
非常感谢您的帮助。
我希望编写一个cron,在每晚午夜自动更改与特定CPT匹配的任何项目的自定义帖子类型。
例如:我有一个CPT叫做;“成员”;但在每天午夜左右,我希望用CPT将任何项目翻转为常规的“CPT”;“发布”;岗位类型。我到处找,一直没能找到答案。
非常感谢您的帮助。
尝试以下操作:
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小时运行一次。我有一个用户使用我的插件,该插件有多个AWS实例托管WP并指向同一个数据库。我的插件的工作之一就是运行大量的小作业。我在考虑使用wp_schedule_single_event 安排作业,但我不确定如何处理多个实例。每个作业都有唯一的参数,因此不会有任何重复。Question:每个实例是否会尝试运行相同的作业,或者WordPress是否能够解决此问题,以便每个作业只运行一次?