我知道有这个插件,但没有一个允许我在没有手动选择帖子内日期的情况下自动终止它们。我有许多用户发布到不同的CPT,我想在发布后的12小时内(大约)删除他们,而无需用户手动设置。我一直在研究最好的方法来做到这一点,并一直试图拼凑不同的建议来实现我的目标。我希望有人能给我指出正确的方向。
我知道我不在那里,但我也不知道接下来该怎么办。我很感激你能提供的任何意见。
对于这个示例,为了简单起见,我选择从一个特定的自定义pout类型开始。
首先,我基于https://www.elegantthemes.com/blog/tips-tricks/how-to-add-cron-jobs-to-wordpress
functions.php
add_action(\'wp\',\'alerts_cron\');
function alerts_cron(){
if(!wp_next_scheduled(\'hpsts_alerts_cron\')){
wp_schedule_event_time(time(), \'hourly\', \'hpsts_alerts_cron\');
}
}
接下来我的动作函数
this post 作为起点
add_action(\'hpsts_alerts_cron\',\'expire_cpt_alert\');
function expire_cpt_alert(){
$args = array (
\'post_type\' => \'hp_dual_credit\',
\'post_status\' => \'publish\'
);
$expire_query = new WP_Query($args);
if($expire_query->have_posts()) {
while($expiry_query->have_posts()) : $expire_query->the_post();
//This is where I start to get lost, I know I want to expire after 12 hours however if my Cron runs hourly I could test better if this was
$publish_time = get_the_time(\'U\');
$delete_time = $publish_time + 3600;
$current_time = date(\'H\');
if($current_time >= $delete_time){
wp_delete_post(get_the_ID(), true);
}
endwhile;
}
}