✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Aggiungi un’impostazione Permalink personalizzata per il tuo tipo di post personalizzato in WordPress

9

Questo è un tutorial su come aggiungere un’impostazione personalizzata alla pagina di amministrazione di WordPress "Impostazioni > Permalink" per definire lo slug per il tuo tipo di post personalizzato. Se stai sviluppando un tema o un plug-in per altri che ha un tipo di post personalizzato integrato, l’aggiunta di questa impostazione sarà apprezzata dall’utente per consentire loro di decidere la struttura dell’URL del tipo di post personalizzato.

Non esaminerò in dettaglio come aggiungere un tipo di post personalizzato; se non sei sicuro, ti consiglio di dare un’occhiata a come aggiungere un tipo di post personalizzato.

Supponi di avere un codice per registrare il tuo tipo di post personalizzato come questo:

La parte che ci interessa è l’ rewriteargomento. È qui che definiamo quale slug il tipo di post riceverà davanti a tutti i suoi post. Il tuo codice per la registrazione di un tipo di post personalizzato potrebbe essere leggermente diverso, ad esempio senza ‘ with_front‘, ma quello che ci interessa qui è ‘ slug‘:

Con questo codice stai praticamente codificando quale sarà lo slug permalink dei post. Un tipo di post per i riferimenti potrebbe essere utilizzato per molti tipi di utenti di contenuti e temi; ad es. progetto, portfolio, referenze di clienti, referenze di società ecc. Per rendere flessibile il tuo tema potresti voler consentire all’utente del tema di decidere da solo lo slug del tipo di post.

Quindi diamo un’occhiata a come farlo!

Aggiunta e salvataggio del campo

L’utilizzo dell’API delle impostazioni di WordPress semplifica in qualche modo questo per noi. Tutto ciò di cui abbiamo bisogno è aggiungere un campo delle impostazioni e dire a WordPress in quale pagina di amministrazione vogliamo che venga visualizzata, nel nostro caso la pagina delle impostazioni dei permalink. Tieni presente che dobbiamo scrivere una funzione che salvi effettivamente anche il valore, cosa che faremo alla fine.

Agganciamo la nostra funzione al admin_initgancio e registriamo la nostra impostazione. Quando registriamo un’impostazione, definiamo quale funzione deve essere eseguita per l’output dell’impostazione:

add_action('admin_init', function() { add_settings_field('mytheme_reference_slug', __('References base', 'txtdomain'), 'mytest_reference_slug_output', 'permalink', 'optional'); });

L’impostazione dell’argomento quattro di [add_settings_field](https://developer.wordpress.org/reference/functions/add_settings_field/)()a 'permalink'dice a WordPress di aggiungere l’impostazione alla pagina Impostazioni dei Permalink. L’argomento numero tre è la funzione che WordPress dovrebbe eseguire durante l’output dell’impostazione, una funzione che definiamo in seguito (al di fuori della funzione agganciata):

In questa funzione viene semplicemente prodotto un testo del modulo di base <input>. Per il suo valueattributo recuperiamo il valore dell’impostazione usando [get_option](https://developer.wordpress.org/reference/functions/get_option/)(). L’ placeholderattributo è facoltativo, ma è buona norma inserire la base slug predefinita in modo che l’utente del tema sappia se desidera modificarne il valore o meno.

Se salvi il tuo codice e vai alla pagina dei permalink di WordPress ora, dovresti vedere il tuo campo alla fine:

Aggiungi un'impostazione Permalink personalizzata per il tuo tipo di post personalizzato in WordPress

Al momento l’impostazione non sta salvando il suo valore, questo è il passaggio successivo.

Abbiamo bisogno di aggiungere un’altra funzione agganciata admin_initche controlla se la nostra impostazione è stata inviata o meno in forma di struttura permalink. E se è così, dovrebbe essere salvato con [update_option](https://developer.wordpress.org/reference/functions/update_option/)().

add_action('admin_init', function() { if (isset($_POST['permalink_structure'])) { update_option('mytheme_reference_slug', trim($_POST['mytheme_reference_slug'])); } });

Quando si salvano le impostazioni dei Permalink viene inviato un modulo, quindi siamo in grado di ottenere i valori tramite la $_POSTvariabile globale di PHP. I valori inviati dal modulo vengono archiviati come una matrice con gli attributi del nome dell’input come chiavi. Nel nostro caso impostiamo un attributo name ‘ mytheme_reference_slug‘ sul nostro input, così possiamo accedere al valore inviato con $_POST['mytheme_reference_slug'].

Ora l’impostazione dovrebbe funzionare completamente nella pagina Impostazioni Permalink. La parte finale è allegare il valore di questa impostazione al nostro tipo di post personalizzato.

Per rendere il nostro tipo di post personalizzato usa la nostra impostazione

Per fare in modo che il nostro tipo di post personalizzato utilizzi il valore personalizzato della nostra impostazione, torniamo alla register_post_type()chiamata di funzione e modifichiamo l’ rewriteargomento in qualcosa del genere:

Tutto ciò che facciamo qui è recuperare il valore della nostra nuova opzione. Se è vuoto 'reference'verrà utilizzato il valore predefinito ().

E questo è tutto! Ora il tuo tipo di post personalizzato utilizzerà qualunque base slug sia impostata nella pagina Impostazioni Permalinks. Puoi aggiungere più impostazioni allo stesso modo, ad esempio per tassonomie personalizzate.

Il codice completo

Tutti insieme ora.

Fonte di registrazione: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More