Înțelegerea și lucrul cu Tabelul opțiunilor WordPress

Î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:

  • Acces la wp_options masa
  • Structura structurii wp_options masa
  • Populația wp_options masa
  • API-ul Opțiuni
  • API-ul Setări

Voi 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. 

Accesați tabela wp_options

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!

Structura tabelului wp_options

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.

Populația tabelului wp_options

wp_options tabelul este populat din una din cele trei surse:

  • ecranele implicite de setări
  • ecranele opțiunilor tematice
  • setările și opțiunile pe care le adăugați prin pluginuri

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.

Folosind opțiunea API pentru opțiuni

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.

Utilizând API-ul Setări

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:

  • setarea (datele din wp_options masa)
  • câmpul (care este folosit pentru a adăuga și edita date)
  • secțiunea de setări, care este un grup de câmpuri asociate.

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.

rezumat

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.

Cod