I have to change the published post in one category to another category after some days. I have created the below code for the function, which I have added in the functions.php file in child-theme. But, I don’t know the error piece.
The below data display the list of post based on the calculation in the loop. the only missing function is wp_set_object_terms.
Please help me out with this.
function set_expired_job_categories() {
$current_time = time();// define timestamp
// Set our query arguments
$args = array(
'fields' => 'ids', // Only get post ID's to improve performance
'post_type' => 'job', // Post type
'post_status' => 'publish',
'posts_per_page' => 10,
'tax_query' => array(
'taxonomy' => 'current-status',
'field' => 'slug',
'terms' => array( 'ongoing' ),
),
);
$q = new WP_Query( $args ); //new wp_query
// Check if we have posts, if not, return false
if ( !$q )
return false;
// standard WP_query
if( $q->have_posts() ){
while( $q->have_posts() ){
$q->the_post();
//deadline_date saved as timestamp
$expire_timestamp = rwmb_meta( 'deadline_date' );
if ( $expire_timestamp ) {
$seconds_between = ( (int)$expire_timestamp - (int)$current_time );
if ( $seconds_between >= 0 ) {
}else {
wp_set_object_terms( $post->ID, array ( 368 ), 'current-status', true );
wp_remove_object_terms( $post->ID, array ( 367 ), 'current-status' );
}
}
}
}
wp_reset_postdata();
}
// hook fires when the Cron is executed
add_action( 'set_job_categories', 'set_expired_job_categories' );
// Add function to register event to wp
add_action( 'wp', 'register_daily_events_job_expiration');
function register_daily_events_job_expiration() {
// Make sure this event hasn't been scheduled
if( !wp_next_scheduled( 'set_job_categories' ) ) {
// Schedule the event
wp_schedule_event( time(), 'hourly', 'set_job_categories' );
}
}
I have revised as follows
$taxonomy = 'current-status';
$job_expired_id = 368;
$job_ongoing_id = 367;
$postid = get_the_ID();
wp_set_object_terms( $postid, (int)$job_expired_id, $taxonomy, true );
wp_remove_object_terms( $postid, (int)$job_ongoing_id, $taxonomy );
For this also, no result.