Oggi vediamo come cancellare dopo un determinato tempo dei custom post type più vecchi di una settimana, o comunque dopo un certo tempo specificato.
La prima cosa da fare è creare la funzione che si occupa di prendere il custom post type desiderato e creare una condizione temporale per prendere solo i post più vecchi di 1 settimana. Questo codice possiamo inserirlo come funzione, sia in un plugin, che nel vostro tema, per esempio nel file functions.php.
Se notate alla fine ho inserito un add_action che, tramite il prefisso “wp_ajax_” ci permette di associare ad una chiamata una determinata funzione, in questo caso la nostra!
Quindi se volete eseguire la funzione, non vi resta che richiamare, 1 sola volta, quella url, ovvero:
https:/www.nomedeltuosito.com/wp-admin/admin-ajax.php?action=delete_custom_post_type_timer
Chiaramente dovete sostituire solo il nome del vostro sito.
Automatizzare la funzione
Se vogliamo rendere automatica la funzione di eliminazione dei post dopo un certo periodo di tempo, allora dobbiamo creare un cronjob su server che vada a richiamare la funzione.
Per farlo, la prima cosa è creare un tempo personalizzato, oltre a quelli di default in WP https://developer.wordpress.org/reference/hooks/cron_schedules/
Ora creaiamo una funzione che esegua il cronjob e per agevolare anche la fase di testing del codice ho creato una variable “$schedulare
” che serve per facilitare o meno l’esecuzione del cron.
Questo permetterà al cron di essere eseguito ogni 12 ore. Infine associamo la nostra funzione al cron specifico.
L’ultimissima cosa da settare su server è il richiamo del cron che va fatto in questo modo dal vostro pannello di controllo, in base al vostro hosting e server, per esempio: