WordPress Option Panel – Salvataggio delle opzioni
Torno finalmente, dopo una lunga pausa, ad aggiornare il blog con una nuova lezione dedicata alla creazione del pannello di opzioni per un tema WordPress. Nella precedente lezione abbiamo visto come creare una pagina vuota e collegarla al menù amministrativo del nostro CMS preferito, oggi vedremo come creare il pannello vero e proprio e salvare i dati nel database. Apriamo il file function.php , troveremo ciò che abbiamo scritto in precedenza. (Per comodità ho eliminato la parte relativa alla seconda pagina, eventualmente sarà reintegrata in futuro)
function add_menu() { add_menu_page("Amministrazione", "Theme Options", 'administrator', 'theme-option', 'themeoption', '' ,61 ); } add_action('admin_menu', 'add_menu'); function themeoption() { echo "<h2> Amministrazione </h2>"; }
E sostituiamo la funzione themeoption con:
function themeoption() { echo "<h2> Amministrazione </h2>"; ?> <form method="post"> <p> <label style="width:30%; display:inline-block "> Url logo</label> <input name="logo" type="text" style="width:50%; margin:0 15px" /> </p> <p> <label style="width:30%; display:inline-block "> Titolo sito </label> <input name="titolo" type="text" style="width:50%; margin:0 15px" /> </p> <p> <label style="width:30%; display:inline-block "> Google analytics </label> <textarea name="analytics" style="width:50%; margin:0 15px"></textarea> </p> <input name="invia" type="submit" value="Salva" class="button" /> </form> <?php }
Adesso andiamo nell’amministrazione di WordPress:
Abbiamo aggiunto un semplice form con tre campi, cliccando su Salva non succederà nulla ovviamente, questo perché dobbiamo ancora aggiungere la parte di codice che elabora e memorizza i dati inseriti. Per fare questo ci vengono incontro le seguenti funzioni
Il loro funzionamento è abbastanza semplice, con add_option e/o update_option, serve per creare un campo all’interno della tabella wp_options del database di WordPress, con la funzione get_option serve per leggere il valore memorizzato e con delete_option serve per cancellare dal database il campo non più necessario.
function themeoption() { echo "<h2> Amministrazione </h2>"; if ($_POST["invia"] == "Salva") { update_option("logo_url", $_POST["logo"]); update_option("titolo", $_POST["titolo"]); update_option("analytics", $_POST["analytics"]); echo "Opzioni salvate con successo"; } ?> <form method="post"> <p> <label style="width:30%; display:inline-block "> Url logo</label> <input name="logo" type="text" style="width:50%; margin:0 15px" value="<?php echo get_option("logo_url");?>" /> </p> <p> <label style="width:30%; display:inline-block "> Titolo sito </label> <input name="titolo" type="text" style="width:50%; margin:0 15px" value="<?php echo get_option("titolo");?>"/> </p> <p> <label style="width:30%; display:inline-block "> Google analytics </label> <textarea name="analytics" style="width:50%; margin:0 15px"><?php echo get_option("analytics");?></textarea> </p> <input name="invia" type="submit" value="Salva" class="button" /> </form> <?php }
Il controllo sul pulsante Salva all’inizio è necessario, prima di elaborare i dati inseriti, altrimenti rischiamo di cancellare le opzioni memorizzate, ogni volta che apriamo o aggiorniamo la pagina. Successivamente, grazie a update_option, creiamo il campo logo_url, memorizzando il il valore inserito. Infine, con get_option, recuperiamo i valori inseriti e li visualizziamo all’interno del form, quest’ultima funzione va utilizzata ogni volta che abbiamo bisogno di recuperare il dato memorizzato ed elaborarlo, a seconda delle nostre esigenze (ad esempio, se dobbiamo aggiungere il codice di Google Analytics, dobbiamo scrivere:
<?php echo get_option("analytics");?>
all’interno del file header.php oppure footer.php.
Ora, tornando nell’amministrazione di WordPress, troveremo il nostro pannello perfettamente funzionante.
Oggi abbiamo visto come creare un pannello di amministrazione funzionante, nella prossima lezione andremo ad ottimizzare il codice appena scritto.
Vi do appuntamento alla prossima lezione.
Commenti
Ottimo articolo!
Pochi siti parlano di come implementare una sezione amministrativa per Worpdress, secondo me con queste lezioni avrai un bel pò di lettori 🙂
Ciao grazie del post …
una domanda ma nel form non va inserita un action cioè in quale pagina richiami lo script ? ad es. action = “salva.php”
ottimo post!