Cancellare Custom Post Type con WordPress dopo un certo tempo

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.

https://gist.github.com/miniMAC/2adc50b6a0ba224b3e088baac6cc1fb4

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/

https://gist.github.com/miniMAC/b0548202336b9e085a41ba7f2923e460

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.

https://gist.github.com/miniMAC/23f82891cf7d4c5355efee152e97fe3b

Questo permetterà al cron di essere eseguito ogni 12 ore. Infine associamo la nostra funzione al cron specifico.

https://gist.github.com/miniMAC/a73754fb4acfbe4ce7c1b6e63bdfa163

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:

https://gist.github.com/miniMAC/dda98fd0ec2cbb4321ecdce8a534c995

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *