Le opzioni sono i dati più importanti in WordPress, memorizzano varie impostazioni di configurazione (vedi di più). Sono anche contenuti nel database come altri dati importanti come post, pagine, ecc. Giorno dopo giorno, queste opzioni possono essere modificate da WordPress stesso o dagli utenti. Quindi, come riconfigurarli a uno stato precedente senza memorizzare ogni valore esatto?
In questo tutorial, ti mostrerò come creare una semplice funzionalità di backup / ripristino per il tuo blog WordPress. Con questa funzione, è possibile eseguire il backup di tutte le opzioni in un altro punto, da cui è possibile ripristinarle in qualsiasi momento senza configurarle nuovamente.
In generale, la nostra funzione avrà due sezioni, una è una sezione di esportazione per il backup dei dati e una sezione di importazione per il ripristino dei dati. Quindi li dimostrerò creando un semplice plugin.
Prima di tutto, devo scrivere alcune righe per dire a WordPress del nostro plugin.
/ * Nome plugin: URI plug-in opzione I / E: http://wp.tutsplus.com/ Descrizione: questo è un plug-in di esempio con funzionalità di backup e ripristino. Autore: Lee Pham Versione: 1.0 Autore URI: http://twitter.com/leephamj * /
Ed ecco il nostro risultato:
Ora abbiamo bisogno di un posto dove mettere la nostra interfaccia per i plugin, mostra due caratteristiche chiave che sono state menzionate sopra (incluse le funzionalità di importazione ed esportazione). Così ho generato una pagina nella sezione di amministrazione:
function register_ie_option () add_menu_page ('IE Option Page', 'IE Option', 'activate_plugins', 'ie-option', 'ie_option_page', ", 76); add_submenu_page ('ie-option', 'Import', ' Importa ',' activate_plugins ',' ie-import-option ',' ie_import_option_page '); add_submenu_page (' ie-option ',' Export ',' Export ',' activate_plugins ',' ie-export-option ',' ie_export_option_page ') Funzione function ie_option_page () // Our stuff here function ie_import_option_page () // Funzione Content Import function ie_export_option_page () // Funzione di esportazione del contenuto add_action (' admin_menu ',' register_ie_option ');
Ecco alcuni punti:
add_menu_page
come funzione WordPress integrata per aggiungere una nuova sezione del menu di primo livello nella barra laterale del menu di amministrazione e dove ie_option_page
parametro è la funzione di callback per l'output del contenuto della pagina.add_submenu_page
per aggiungerli al menu di livello superiore che abbiamo appena creato sopra. Come vedi, ciascuna funzione ha anche una funzione di callback per visualizzare il contenuto di output come il add_menu_page
la funzione fa. Non importa se li unisci in un unico posto, cerco solo di tenerlo chiaro.register_ie_option
sul admin_menu
azione al fine di attivare il nostro obiettivo ogni volta che viene chiamata questa azione.Ho intenzione di creare una pagina di esportazione come questa:
function ie_export_option_page () if (! isset ($ _ POST ['export'])) ?>Esportare
Quando si fa clic Backup di tutte le opzioni pulsante, il sistema genererà un file JSON che potrai salvare sul tuo computer.
Questo file di backup contiene tutte le opzioni di configurazione e impostazione sul nostro sito web. Nota che lo fa NON contiene post, pagine o qualsiasi dato rilevante, solo le tue opzioni.
Dopo l'esportazione, è possibile utilizzare il file di backup per ripristinare nuovamente le impostazioni su questo sito o su un altro sito WordPress.
Creiamo semplicemente un modulo con un pulsante e controlliamo se il pulsante viene cliccato o meno. Inoltre, aggiungiamo del testo di istruzioni usando alcune classi CSS di WordPress disponibili. Per fare un controllo di sicurezza, io uso un
wp_nonce_field ()
e ilcheck_admin_referer ()
funzione, leggi di più su WordPress Nonces.Denominazione del nome file da generare
$ blogname = str_replace ("", "", get_option ('blogname')); $ date = date ("m-d-Y"); $ json_name = $ blogname. "-". $ date;Basta dare un nome al file in modo da poter vedere facilmente dove e quando è stato esportato.
Ottieni opzioni di backup e codifica in dati JSON
$ options = get_alloptions (); foreach ($ opzioni come $ chiave => valore $) $ valore = forse_unserialize (valore $); $ need_options [$ key] = $ valore; $ json_file = json_encode ($ need_options);Ecco il passo importante, prestiamo attenzione:
get_alloptions ()
è una funzione che ottiene tutte le opzioni sul tuo sito e le restituisce come una matrice, $ options
in questo caso.json_encode
ci aiuta a raggiungere questo obiettivo.ob_clean (); echo $ json_file; intestazione ("Content-Type: text / json; charset =". get_option ('blog_charset')); intestazione ("Content-Disposition: attachment; filename = $ json_name.json"); Uscita();
Quindi avvolgiamo il contenuto dei nostri dati JSON in due importanti funzioni, ob_clean ()
e Uscita()
per garantire che il nostro file JSON generato contenga solo dati JSON json_file
tiene senza altri dati. A proposito, inviamo una richiesta di intestazione al client che visualizza una finestra di dialogo di download. Per farlo funzionare correttamente dovremmo mettere il ob_start ()
funzione nella parte superiore del nostro codice plugin, questo impedisce che si verifichino errori di intestazione, forse ci sono degli spazi bianchi o linee extra da qualche parte nel codice WordPress che potrebbero causare.
"JSON (JavaScript Object Notation) è un leggero formato di interscambio di dati, è facile per gli utenti leggere e scrivere, è facile per le macchine analizzare e generare".
Quindi ecco l'intero codice della funzione Export:
function ie_export_option_page () if (! isset ($ _ POST ['export'])) ?>$ valore) $ valore = forse_unserialize (valore $); $ need_options [$ key] = $ valore; $ json_file = json_encode ($ need_options); // codifica i dati in json data ob_clean (); echo $ json_file; intestazione ("Content-Type: text / json; charset =". get_option ('blog_charset')); intestazione ("Content-Disposition: attachment; filename = $ json_name.json"); Uscita();Esportare
Quando si fa clic Backup di tutte le opzioni pulsante, il sistema genererà un file JSON che potrai salvare sul tuo computer.
Questo file di backup contiene tutte le opzioni di configurazione e impostazione sul nostro sito web. Nota che lo fa NON contiene post, pagine o qualsiasi dato rilevante, solo le tue opzioni.
Dopo l'esportazione, è possibile utilizzare il file di backup per ripristinare nuovamente le impostazioni su questo sito o su un altro sito WordPress.
L'attività di questa pagina è abbastanza semplice, visualizza un modulo di caricamento e analizza i dati dal file JSON per eseguire il backup delle nostre opzioni.
function ie_import_option_page () ?>Importare
Fai clic sul pulsante Sfoglia e scegli un file json di cui hai eseguito il backup in precedenza.
Premi il pulsante Ripristina, WordPress fa il resto per te.
Come la pagina di esportazione, creiamo un modulo, ma questa volta aggiungiamo un pulsante Sfoglia in modo che l'utente possa scegliere il file che desidera e inviarlo.
Convalida e aggiornamento del file JSON
if (isset ($ _ FILES ['import'])) if ($ _FILES ['import'] ['error']> 0) wp_die ("Errore succede"); else $ file_name = $ _FILES ['import'] ['name']; $ file_ext = strtolower (end (explode (".", $ file_name))); $ file_size = $ _FILES ['import'] ['size']; if (($ file_ext == "json") && ($ file_size < 500000)) $encode_options = file_get_contents($_FILES['import']['tmp_name']); $options = json_decode($encode_options, true); foreach ($options as $key => valore $) update_option ($ key, $ value); eco ""; else echo"Tutte le opzioni sono ripristinate correttamente.
";Dimensione del file o file non valida troppo grande.
Se il processo di caricamento riceve degli errori, basta restituire un messaggio di matrice "Si è verificato un errore". In caso contrario, ottenere l'estensione e la dimensione del file, memorizzarli in variabili e controllarli. Accettiamo solo file con estensione ".json" e dimensioni inferiori a 500000 byte. Se il file non è appropriato, visualizza semplicemente un messaggio di errore "File non valido o dimensioni del file troppo grandi".. Nota: È possibile modificare questa dimensione in base alle proprie esigenze.
Poi il
$ encode_options
variabile otterrà tutto il contenuto di questo file. Dato che il file contiene dati JSON, prima di usarlo dobbiamo prima decodificare. Per fare questo, usiamojson_decode
con un secondo parametro che ha un valore vero, quindi questa funzione restituisce un valore di matrice. Con un valore di matrice, iniziamo a passarci sopra. Ad ogni iterazione, aggiorneremo i dati con la stessa chiave e il suo valore. Alla fine, tutte le nostre opzioni verranno ripristinate esattamente come erano e verrà visualizzato un messaggio di successo.Ed ecco l'intero codice della funzione di importazione:
function ie_import_option_page () ?>Importare
0) wp_die ("Errore accade"); else $ file_name = $ _FILES ['import'] ['name']; // Ottieni il nome del file $ file_ext = strtolower (end (explode (".", $ File_name))); // Ottieni l'estensione del file $ file_size = $ _FILES ['import'] ['size']; // Ottieni dimensione del file / * Assicurati che il file caricato sia di tipo JSON e la dimensione non superi i 500000 byte * Puoi modificare la dimensione desiderata * / if (($ file_ext == "json") && ($ file_size < 500000)) $encode_options = file_get_contents($_FILES['import']['tmp_name']); $options = json_decode($encode_options, true); foreach ($options as $key => valore $) update_option ($ key, $ value); eco ""; else echo"Tutte le opzioni sono ripristinate correttamente.
";?>Dimensione del file o file non valida troppo grande.
Fai clic sul pulsante Sfoglia e scegli un file json di cui hai eseguito il backup in precedenza.
Premi il pulsante Ripristina, WordPress fa il resto per te.
Crea la tua funzione di backup per i tuoi modelli o plugin
Nel plug-in di esempio, ho eseguito il backup di tutte le opzioni del sito utilizzando
get_alloptions
Funzione WordPress Se vuoi applicarlo alle tue specifiche opzioni, fallo in questo modo:$ options = array ('your_option1_name' => get_option ('your_option1_name'), 'your_option2_name' => get_option ('your_option2_name'); $ json_file = json_encode ($ options);E vai al prossimo passo come sopra. Puoi scegliere liberamente quali opzioni vuoi eseguire il backup!
Conclusione
In questo tutorial, diamo un'occhiata a una panoramica sulla creazione di una semplice funzionalità di backup / ripristino. Dovresti notare che il mio plugin è solo un semplice esempio non ufficiale. Il mio obiettivo non è scrivere un plugin perfetto, ma per mostrarti il principio di base di questa funzionalità. Comprenderlo, puoi creare la tua funzione sui tuoi modelli o plug-in, puoi anche renderla flessibile come desideri. Pertanto puoi rendere questa funzione isolata per i tuoi modelli / plug-in.
Spero che questo tutorial ti sia utile, fammi sapere cosa ne pensi. Le tue idee migliorano, o addirittura mi mostrano i miei errori, il tuo feedback sarà davvero di grande aiuto. Grazie per aver letto!
Preferenza:
add_menu_page
Funzione WordPressadd_submenu_page
Funzione WordPressget_alloptions
Funzione WordPress