Come ricreare i permalink una volta ogni giorno in WordPress
Hai mai apportato modifiche alla struttura dei permalink del tuo sito WordPress e hai scoperto che tali modifiche non si riflettevano immediatamente nei tuoi URL?
Ciò può essere frustrante, soprattutto se fai affidamento sulla SEO e vuoi assicurarti che gli URL del tuo sito siano correttamente indicizzati dai motori di ricerca. In questo articolo, esploreremo una soluzione a questo problema implementando un cron job che svuota automaticamente i permalink in WordPress una volta al giorno, assicurando che qualsiasi modifica alla struttura dei permalink abbia effetto in modo tempestivo.
function noniente_flush_permalinks_cron() { if ( ! wp_next_scheduled( 'noniente_flush_permalinks_event' ) ) { wp_schedule_event( time(), 'daily', 'noniente_flush_permalinks_event' ); } } add_action( 'wp', 'noniente_flush_permalinks_cron' ); function noniente_flush_permalinks() { flush_rewrite_rules(); } add_action( 'noniente_flush_permalinks_event', 'noniente_flush_permalinks' );
Il frammento di codice fornito abilita un cron job in WordPress per svuotare automaticamente i permalink una volta al giorno.
Analizziamolo passo dopo passo per capire come funziona.
Nella prima funzione, noniente_flush_permalinks_cron(), controlliamo se l’evento noniente_flush_permalinks_event sia già impostato. In caso contrario, pianifichiamo l’evento in modo che venga eseguito ogni giorno utilizzando la funzione wp_schedule_event(). Il primo argomento, time(), imposta l’ora iniziale dell’evento all’ora corrente. Il secondo argomento, ‘daily’, indica che l’evento deve essere attivato ogni giorno. Infine, il terzo argomento, ‘noniente_flush_permalinks_event’, specifica il nome dell’evento da pianificare.
if ( ! wp_next_scheduled( 'noniente_flush_permalinks_event' ) ) { wp_schedule_event( time(), 'daily', 'noniente_flush_permalinks_event' ); }
Poi, aggiungiamo un’azione sull’esecuzione di noniente_flush_permalinks_event eseguendo anche la funzione noniente_flush_permalinks_cron(). Questo hook si attiva all’inizio di ogni richiesta WordPress. Collegando la nostra funzione a questo hook, ci assicuriamo che il cron job venga inizializzato correttamente.
add_action( 'wp', 'noniente_flush_permalinks_cron' );
Nella seconda funzione, noniente_flush_permalinks(), definiamo l’azione da eseguire quando l’evento noniente_flush_permalinks_event si verifica. In questo caso, richiama la funzione flush_rewrite_rules(). Questa funzione svuota e rigenera le regole di riscrittura di WordPress, inclusi permalink, tipi di post personalizzati e regole di riscrittura definite dai plugin.
Infine, aggiungiamo un altro hook di azione, ‘noniente_flush_permalinks_event’, a cui colleghiamo la nostra funzione noniente_flush_permalinks() usando add_action(). Questo assicura che ogni volta che si verifica l’evento pianificato, la funzione flush_rewrite_rules() verrà eseguita.
Combinando questi frammenti di codice, possiamo impostare un cron job che ricrea automaticamente i permalink in WordPress una volta al giorno.
Ciò è utile in scenari in cui si verificano frequentemente modifiche alle regole di riscrittura o ai permalink, come durante lo sviluppo o l’aggiornamento di un plugin o di un tema.
Se hai bisogno di personalizzare il tuo sito WordPress, contattami attraverso questo modulo.
Lascia un Commento
Vuoi partecipare alla discussione?Sentitevi liberi di contribuire!