Come ricreare i permalink una volta ogni giorno in WordPress

Come Limitare I Menù Di Amministrazione Wp Per Un Certo Ruolo

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.

Hai un problema con il web?

Il tuo sito internet non vuole funzionare?

Vuoi rinnovarlo o sistemarlo?

Hai un’idea di integrazione ma non sai se è possibile realizzarla o meno?

    Accetto la Privacy Policy
    Autorizzo al trattamento dei miei dati personali, per ricevere le informazioni richieste attraverso questo modulo di contatto. I dati da te inseriti attraverso questo modulo verranno utilizzati solo per essere da me ricontattato.

    Recensioni

    Scrivimi una recensione

    Questo QR Code ti permette di lasciarmi una recensione in maniera facile e veloce.

    Altrimenti qui sotto ti lascio un bottone, con il quale puoi lasciare la recensione direttamente su Google My Business.

    Lascia una recensione su Google