În părțile anterioare ale acestei serii, am analizat tabelele din baza de date WordPress și relațiile dintre ele.
În această parte voi acoperi o masă diferită de celelalte - wp_options
masa. După cum puteți vedea din diagrama de mai jos, acesta este singurul tabel care se situează singur:
Tabelul cu opțiuni stochează un alt tip de date din celelalte tabele: în loc să stocheze date despre conținutul site-ului dvs., acesta stochează date despre site-ul însuși. Datele sunt scrise în tabelul cu opțiuni utilizând API-ul Opțiuni sau API-ul Setări, ambele reprezentând un set de funcții folosite pentru a adăuga, actualiza și șterge datele din acest tabel.
Puteți adăuga valori la opțiunile existente și puteți adăuga, de asemenea, noi înregistrări în tabel când doriți să creați noi opțiuni.
În acest tutorial mă voi uita la diferite aspecte ale tabelului de opțiuni și la modul în care interacționați cu el:
wp_options
masawp_options
masawp_options
masaVoi oferi doar o imagine de ansamblu a API-urilor și modul în care acestea interacționează cu tabelul de opțiuni - dacă doriți să aflați mai multe, citiți seria lui Tom McFarlin cu privire la setările API.
Dupa cum wp_options
tabelul stochează date care se referă la configurarea și administrarea site-ului în ansamblul său, accesul la acesta este restricționat. Pentru a putea modifica setările și opțiunile, utilizatorii vor trebui să aibă manage_options
capacitate. Singurul rol de utilizator implicit cu această capacitate este rolul de administrator (și în Multisite, rolul administratorului de rețea).
Aceasta înseamnă că, dacă trebuie să adăugați opțiuni la care au acces alte roluri ale utilizatorilor, va trebui să le atribuiți manage_options
capacitate pentru ei. Acest lucru presupune riscuri, deci faceți-l numai dacă sunteți sigur!
Tabelul cu opțiuni are o structură similară celor trei tabele de metadate. Are patru câmpuri:
option_ID
OPTION_NAME
option_value
autoload
- specifică dacă opțiunea este încărcată automat pe încărcarea fiecărei pagini - implicită da
într - o singură instalare și Nu
în Multisite.Fiecare înregistrare în OPTION_NAME
câmpul va fi o valoare unică: dacă adăugați mai mult de o valoare la o opțiune, WordPress stochează acest lucru într - o matrice din option_value
camp. Un bun exemplu în acest sens este active_plugins
, care stochează o serie de pluginuri activate pe site-ul dvs..
Când adăugați, editați sau ștergeți date în wp_options
tabel, trebuie să specificați întotdeauna OPTION_NAME
, așa cum voi arăta mai târziu în acest tutorial.
wp_options
tabelul este populat din una din cele trei surse:
Există o serie de opțiuni încorporate în WordPress - puteți vedea toate acestea în Referința opțiunilor. Dar, de asemenea, puteți crea propriul dvs..
Pentru a crea noi opțiuni în tema sau pluginul dvs., utilizați API-ul de opțiuni sau API-ul Setări. Voi prezenta aceste detalii mai detaliat mai jos.
API-ul Options include opt funcții care vă permit să adăugați, să obțineți, să actualizați sau să ștergeți opțiunile:
Funcţie | Parametrii | notițe |
---|---|---|
add_option () | opţiunea $ , valoarea $ , $ depreciat , $ autoload | Numai opţiunea $ este necesară. Dacă există o înregistrare existentă cu dvs. opţiunea $ parametru ca valoare a lui OPTION_NAME domeniu, WordPress vă va adăuga valoarea $ la o matrice în option_value pentru acea înregistrare, în caz contrar va crea un nou record. |
delete_option () | opţiunea $ | Șterge toate câmpurile pentru opțiunea respectivă |
get_option () | opţiunea $ , $ default | $ default (opțional) este valoarea implicită pentru returnare dacă nu este stocată nicio valoare față de opțiunea din baza de date. |
update_option () | opţiunea $ , $ NEW_VALUE | $ NEW_VALUE este valoarea care va popula option_value camp |
add_site_option () | opţiunea $ , valoarea $ | Similar cu add_site_option () dar adaugă opțiunea la nivel de rețea în Multisite (ceea ce înseamnă că opțiunea este stocată în wp_options tabel și nu wp_XX_options tabelul unde XX este ID-ul site-ului). $ autoload nu este inclus ca opțiuni de site nu se autoload în Multisite și acest lucru nu poate fi suprascris. |
delete_site_option () | opţiunea $ | La fel ca delete_option () dar funcționează în rețea în Multisite. |
get_site_option () | opţiunea $ , $ default , $ use_cache | Similar cu get_option () dar returnează opțiunea la nivel de rețea în Multisite. |
update_site_option () | opţiunea $ , valoarea $ | Identic cu update_option () dar funcționează în rețea în Multisite. |
Rețineți că atunci când creați opțiuni, fie prin API-ul de opțiuni, fie prin API-ul de setări, puteți crea înregistrări fără valoare în option_value
camp. Acest lucru permite administratorilor site-ului să populeze acel câmp ulterior.
Pe lângă API-ul de opțiuni, puteți utiliza și API-ul de setări pentru a interacționa cu datele din wp_options
masa. API-ul pentru setări vă permite să creați setările pe care administratorii site-ului le pot utiliza pentru a adăuga sau actualiza date în tabelul cu opțiuni - adaugă o interfață utilizator la opțiunile dvs..
API-ul cu setări are mai mult decât API-ul de opțiuni, așa că nu îl voi detalia aici în detaliu, dar, în esență, are trei elemente:
wp_options
masa)Cele două funcții din Setările API care interacționează direct cu wp_options
tabel sunt după cum urmează:
Funcţie | Parametrii | notițe |
---|---|---|
register_setting () | $ option_group , $ OPTION_NAME , $ sanitize_callback | $ OPTION_NAME parametru se referă la OPTION_NAME domeniu în wp_options masa; ceilalți parametri interacționează cu alte funcții din API-ul Setări |
unregister_setting () | $ option_group , $ OPTION_NAME , $ sanitize_callback | Setările pentru defecțiuni din wp_options tabel - utilizat în mod normal cu cârlige de dezactivare pentru teme sau pluginuri. |
Aceste funcții nu adaugă valori la opțiunile din wp_options
tabel, dar ele creează setări care pot avea decât valori adăugate acestora prin intermediul altor funcții din API-ul Setări.
wp_options
tabelul este unic printre tabelele de baze de date WordPress în sensul că nu împarte o relație cu nici unul dintre celelalte tabele. Acest lucru se datorează faptului că stochează date despre site sau rețea și nu despre conținut. Pentru a interacționa cu tabela de opțiuni, puteți utiliza funcțiile din API-ul Opțiuni sau din API-ul Setări și puteți utiliza, de asemenea, funcții care adaugă o rețea de date într-o izolație multisite.
În ultima parte a acestei serii mă voi uita la Multisite, deoarece utilizează câteva tabele de baze de date suplimentare care nu au fost acoperite până acum în această serie și creează, de asemenea, mai multe instanțe ale fiecărui tabel de bază, câte unul pentru fiecare site.