Opțiunile sunt cele mai importante date din WordPress, stochează diverse setări de configurare (vezi mai multe). Acestea sunt, de asemenea, conținute în baza de date ca și alte date importante, cum ar fi postări, pagini etc. Zilnic, aceste opțiuni pot fi modificate de WordPress sau de utilizatori. Deci, cum să le configurați înapoi la o stare anterioară fără a memora fiecare valoare exactă?
În acest tutorial, vă voi arăta cum să creați o facilitate simplă de backup / restaurare pentru blogul dvs. WordPress. Cu această caracteristică, puteți să salvați toate opțiunile în alt loc, pentru a le putea recupera oricând, fără a le configura din nou.
În general, funcția noastră va avea două secțiuni, una este o secțiune Export pentru copierea de rezervă a datelor și o secțiune Import pentru restaurarea datelor. Deci, voi demonstra aceste lucruri prin crearea unui plugin simplu.
În primul rând, trebuie să scriu câteva rânduri pentru a le spune WordPress despre plugin-ul nostru.
/ * Plugin Name: I / E opțiune Plugin URI: http://wp.tutsplus.com/ Descriere: Acesta este un plugin de probă cu opțiunea de backup și restaurare opțiune. Autor: Lee Pham Versiune: 1.0 URI autor: http://twitter.com/leephamj * /
Iată rezultatul nostru:
Acum avem nevoie de un loc pentru a pune interfața noastră de plugin, arată două caracteristici cheie care au fost menționate mai sus (inclusiv caracteristicile Import și Export). Deci, eu generez o pagină în secțiunea admin:
funcția register_ie_option () add_menu_page ("Opțiunea IE", "Opțiunea IE", "activate_plugins", "ie-option", "ie_option_page", "76); add_submenu_page "Ie_export_option_page", "ie -export_option_page", "ie_export_option_page", "ie_export_option_page", "ie_export_option_page", " '); funcția ie_option_page () // Funcția noastră aici funcția ie_import_option_page () // Import Import Feature ie_export_option_page () // Feature Export Feature add_action (' admin_menu ',' register_ie_option ');
Iată câteva puncte:
add_menu_page
ca o funcție WordPress încorporată pentru a adăuga o nouă secțiune de meniu de nivel superior în bara laterală a meniului admin și unde ie_option_page
parametru este funcția de apel invers pentru afișarea conținutului paginii.add_submenu_page
pentru a le adăuga la meniul de nivel superior pe care tocmai l-am creat mai sus. După cum vedeți, fiecare funcție are, de asemenea, o funcție de apel invers pentru a afișa un conținut de ieșire precum add_menu_page
funcționează. Nu contează dacă le îmbinați într-un singur loc, încerc doar să păstrez clar.register_ie_option
pe admin_menu
acțiune în scopul de a declanșa scopul nostru de fiecare dată când această acțiune este chemată.Am de gând să creez o pagină de export ca aceasta:
funcția ie_export_option_page () if (! isset ($ _ POST ['export'])) ?>Export
Când faceți clic pe Faceți backup pentru toate opțiunile , sistemul va genera un fișier JSON pe care să-l salvați pe computer.
Acest fișier de rezervă conține toate opțiunile de configurare și setare pe site-ul nostru. Rețineți că o face NU să conțină postări, pagini sau orice date relevante, doar toate opțiunile.
După export, puteți utiliza fișierul de rezervă pentru a restabili din nou setările dvs. pe acest site sau pe un alt site WordPress.
Tocmai creăm un formular cu un buton și verificăm dacă butonul este apăsat sau nu. În plus, adăugăm un text de instrucțiuni utilizând o anumită clasă WordPress CSS disponibilă. Pentru a efectua o verificare de securitate, folosesc a
wp_nonce_field ()
sicheck_admin_referer ()
funcția, citiți mai multe despre WordPress Nonces.Denumirea numelui de fișier care urmează să fie generat
$ blogname = str_replace ("", "", get_option ('blogname')); $ date = data ("m-d-Y"); $ json_name = $ nume de blog. "-". $ date;Doar denumiți fișierul pentru a putea vedea cu ușurință unde și când a fost exportat.
Obțineți opțiuni de backup și codificați datele JSON
$ opțiuni = get_alloptions (); foreach ($ opțiuni ca $ cheie => valoarea $) $ value = maybe_unserialize ($ value); $ need_options [$ key] = valoarea $; $ json_file = json_encode ($ need_options);Iată pasul important, să ne acordăm atenție:
get_alloptions ()
este o funcție care obține toate opțiunile pe site-ul dvs. și le returnează ca o matrice, opţiuni de $
în acest caz.json_encode
ne ajută să atingem acest obiectiv.ob_clean (); echo $ json_file; antet ("Content-Type: text / json; charset ="; get_option ("blog_charset")); antet ("Conținut-Dispunere: atașament; fișier nume = $ json_name.json"); Ieșire();
Apoi, ambalăm conținutul datelor JSON în două funcții importante, ob_clean ()
și Ieșire()
pentru a ne asigura că fișierul nostru JSON generat conține numai date JSON care json_file
deține fără alte date. Apropo, trimitem o solicitare de antet clientului care afișează un dialog de descărcare. Pentru a face acest lucru în mod corespunzător ar trebui să punem ob_start ()
funcția din partea de sus a codului nostru plugin, acest lucru împiedică apariția erorilor antetului, poate că există niște spații albe sau linii undeva în codul WordPress care ar putea cauza.
"JSON (JavaScript Object Notation) este un format ușor de schimb de date. Este ușor pentru oameni să citească și să scrie, este ușor pentru mașini să parseze și să genereze."
Deci, aici este întregul cod de funcții Export:
funcția ie_export_option_page () if (! isset ($ _ POST ['export'])) ?>valoarea $) $ value = maybe_unserialize (valoarea $); $ need_options [$ key] = valoarea $; $ json_file = json_encode ($ need_options); // codificați datele în datele json ob_clean (); echo $ json_file; antet ("Content-Type: text / json; charset ="; get_option ("blog_charset")); antet ("Conținut-Dispunere: atașament; fișier nume = $ json_name.json"); Ieșire();Export
Când faceți clic pe Faceți backup pentru toate opțiunile , sistemul va genera un fișier JSON pe care să-l salvați pe computer.
Acest fișier de rezervă conține toate opțiunile de configurare și setare pe site-ul nostru. Rețineți că o face NU să conțină postări, pagini sau orice date relevante, doar toate opțiunile.
După export, puteți utiliza fișierul de rezervă pentru a restabili din nou setările dvs. pe acest site sau pe un alt site WordPress.
Această sarcină a paginii este destul de simplă, afișează un formular de încărcare și analizează date din fișierul JSON pentru a salva opțiunile.
funcția ie_import_option_page () ?>Import
Faceți clic pe butonul Răsfoire și alegeți un fișier json pe care l-ați copiat înainte.
Apăsați butonul Restaurare, WordPress face restul pentru tine.
La fel ca pagina de export, creăm un formular, dar de data aceasta adăugăm un buton Răsfoiți astfel încât utilizatorul să poată alege fișierul pe care îl dorește și să-l trimită.
Validarea și actualizarea fișierului JSON
dacă ($ _FILES ['import'] ['error']> 0) wp_die ("Eroare se întâmplă"); altceva $ file_name = $ _FILES ['import'] ['nume']; $ file_ext = strtolower (sfârșitul (explode (".", $ file_name))); $ file_size = $ _FILES ['import'] ['dimensiune']; dacă ($ 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 => valoarea $) update_option (cheia $, valoarea $); ecou ""; altceva echo"Toate opțiunile sunt restaurate cu succes.
";Fișierul sau fișierul nevalid sunt prea mari.
Dacă procesul de încărcare a primit erori, returnați un mesaj "A apărut o eroare". Dacă nu, obțineți extensia și dimensiunea fișierului, stocați-le în variabile și verificați-le. Acceptăm numai fișiere cu extindere ".json" și dimensiuni mai mici de 500000 de octeți. Dacă fișierul nu este unul potrivit, afișați doar un mesaj de eroare "Fișier nevalid sau dimensiune fișier prea mare".. Notă: Puteți modifica această dimensiune după cum doriți.
Apoi,
$ encode_options
variabila va primi tot conținutul acestui fișier. Deoarece fișierul conține date JSON, înainte de a fi folosit, trebuie să decodificăm mai întâi. Pentru a face acest lucru, vom folosijson_decode
cu un al doilea parametru care are o valoare reală, astfel încât această funcție returnează o valoare a matricei. Cu o valoare a matricei, începem să o luăm peste ea. La fiecare iterație, vom actualiza datele cu aceeași cheie și valoarea acesteia. În final, toate opțiunile noastre vor fi restaurate exact așa cum au fost ele și va fi afișat un mesaj de succes.Și aici este întregul cod de funcție de import:
funcția ie_import_option_page () ?>Import
0) wp_die ("Eroare se întâmplă"); altceva $ file_name = $ _FILES ['import'] ['nume']; // Obține numele fișierului $ file_ext = strtolower (end (explode (".", $ File_name))); // Obțineți extensia fișierului $ file_size = $ _FILES ['import'] ['size']; // Obțineți dimensiunea fișierului / * Asigurați-vă că fișierul încărcat este tipul de fișier JSON și dimensiunea nu mai mare de 500000 octeți * Puteți modifica dimensiunea dorită * / dacă (($ 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 => valoarea $) update_option (cheia $, valoarea $); ecou ""; altceva echo"Toate opțiunile sunt restaurate cu succes.
";?>Fișierul sau fișierul nevalid sunt prea mari.
Faceți clic pe butonul Răsfoire și alegeți un fișier json pe care l-ați copiat înainte.
Apăsați butonul Restaurare, WordPress face restul pentru tine.
Creați o caracteristică de rezervă proprie pentru șabloanele sau pluginurile dvs.
În pluginul de probă, am făcut backup pentru toate opțiunile de site folosind
get_alloptions
Funcția WordPress. Dacă doriți să aplicați acest lucru opțiunilor dvs. specifice, procedați astfel:$ options_array ('your_option1_name' => get_option ('your_option1_name'), 'your_option2_name' => get_option ('your_option2_name'); $ json_file = json_encode ($ opțiuni);Și treceți la pasul următor, ca mai sus. Alegeți liber opțiunile pe care doriți să le copiați!
Concluzie
În acest tutorial, analizăm o imagine de ansamblu a creării unei facilități simple de backup / restaurare. Ar trebui să observați că pluginul meu este doar un eșantion simplu, nu unul oficial. Scopul meu nu este să scriu un plugin perfect, ci să vă arăt principiul de bază al acestei caracteristici. Prin înțelegerea acesteia, vă puteți crea propria funcție pe șabloanele sau pluginurile dvs., de asemenea, puteți să o faceți cât mai flexibilă pe cât doriți. Prin urmare, puteți face această caracteristică izolată pentru șabloanele / pluginurile dvs..
Sper că acest tutorial este util pentru dvs., dați-mi voie să știu ce credeți. Ideile tale o fac mai bine sau chiar îmi arăți greșelile mele, feedbackul tău va ajuta într-adevăr foarte mult. Vă mulțumim pentru lectură!
Preferinţă:
add_menu_page
Funcția WordPressadd_submenu_page
Funcția WordPressget_alloptions
Funcția WordPress