Probabilmente vi sarà capitato almeno una volta di pubblicare un post e accorgervi, due secondi dopo, di aver commesso un errore.
È vero che potete immediatamente accedere all’editor di WordPress e correggere l’errore, ma il problema è che via feed il post ha già iniziato a circolare e si è diffuso nella Rete.
Per ovviare a questo “inconveniente” è possibile definire un tempo di attesa, successivo alla pubblicazione del post, in modo che il feed pubblichi il post con un certo ritardo.
Per ottenere questo, senza installare alcun plugin aggiuntivo, è sufficiente incollare il codice sottostante all’interno del file functions.php del vostro tema.
// ritarda la pubblicazione dei feed
function publish_later_on_feed($where) {
global $wpdb;
if (is_feed()) {
// timestamp in WP-format
$now = gmdate('Y-m-d H:i:s');
// tempo di attesa; + device
$wait = '5'; // integer
$device = 'MINUTE'; // MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
}
return $where;
}
add_filter('posts_where', 'publish_later_on_feed');
Nell’esempio sopra riportato il tempo di attesa è pari a 5 minuti, più che sufficiente per rimediare ad eventuali errori e ragionevolmente basso per evitare notevoli ritardi nella pubblicazione.
Grazie intanto per la guida ma ti volevo porre una domanda: ma in questo modo sbaglio o è più conveniente la cosa in quanto il sito non si “appesantisce” dal plugin?
Limitare l’uso di plugin è sempre meglio, sia per la stabilità del CMS di WordPress, sia per gli altri. Non ultimo è il fattore velocità di caricamento della pagina, che con minori plugin installati sarà sicuramente più reattiva.
Grazie per la funzione per il ritardo del processo dei nostri feed: è molto utile soprattutto con gli aggregatori che ci “succhiano” il contenuto all’istante!