I de tidigare delarna av denna serie tittade vi på tabellerna i WordPress-databasen och relationerna mellan dem.
I den här delen kommer jag att täcka ett bord som skiljer sig från de andra - wp_options
tabell. Som du kan se från diagrammet nedan är det den enda tabellen som sitter i sig:
Alternativtabellen lagrar en annan typ av data från de andra tabellerna: i stället för att lagra data om innehållet på din webbplats lagras data om själva webbplatsen. Data skrivs till alternativtabellen med alternativ API eller inställnings API, som båda består av en uppsättning funktioner som används för att lägga till, uppdatera och ta bort data från den här tabellen.
Du kan lägga till värden i befintliga alternativ och du kan även lägga till nya poster i tabellen när du vill skapa nya alternativ.
I denna handledning ser jag på olika aspekter av alternativtabellen och hur du interagerar med det:
wp_options
tabellwp_options
tabellwp_options
tabellJag ska bara ge en översikt över API: erna och hur de interagerar med alternativtabellen - om du vill lära dig mer, läs Tom McFarlins serie i inställnings API.
Som den wp_options
tabellen lagrar data som är relaterat till installationen och administrationen av webbplatsen som helhet, tillgången till den är begränsad. För att kunna ändra inställningar och alternativ måste användarna ha manage_options
förmåga. Den enda standardanvändarrollen med denna kapacitet är administratörsrollen (och i Multisite, nätverksadministratörsrollen).
Det betyder att om du behöver lägga till alternativ som andra användarroller har tillgång till måste du tilldela manage_options
förmåga till dem. Detta bär risker, så gör det bara om du är säker!
Alternativstabellen har en liknande struktur som de tre metadataborden. Den har fyra fält:
option_ID
OPTION_NAME
option_value
autoload
- specificerar om alternativet automatiskt laddas på varje sida som belastar - som standard till ja
i en enda installation och Nej
i Multisite.Varje post i OPTION_NAME
Fältet kommer att vara ett unikt värde: Om du lägger till mer än ett värde till ett alternativ, lagras WordPress i en array i option_value
fält. Ett bra exempel på detta är active_plugins
alternativ, som lagrar en rad plugins aktiverade på din webbplats.
När du lägger till, redigerar eller tar bort data i wp_options
bord måste du alltid ange OPTION_NAME
, som jag visar senare i denna handledning.
De wp_options
bordet är befolat från en av tre källor:
Det finns ett antal alternativ inbyggda i WordPress - du kan se alla dessa i alternativreferensen. Men du kan också skapa din egen.
Om du vill skapa nya alternativ i ditt tema eller plugin skulle du använda alternativ API eller inställnings API. Jag kommer att täcka dem mer i detalj nedan.
Alternativ API består av åtta funktioner som låter dig lägga till, få, uppdatera eller ta bort alternativ:
Fungera | parametrar | anteckningar |
---|---|---|
add_option () | $ alternativ , $ värde , $ föråldrat , $ autoload | Endast $ alternativ krävs. Om det finns en befintlig post med din $ alternativ parameter som värdet av dess OPTION_NAME fält kommer WordPress att lägga till din $ värde till en array i option_value fält för den posten, annars skapas en ny post. |
delete_option () | $ alternativ | Tar bort alla fält för det alternativet |
get_option () | $ alternativ , $ default | $ default (valfritt) är standardvärdet att returnera om inget värde lagras mot alternativet i databasen. |
update_option () | $ alternativ , $ new_value | $ new_value är det värde som kommer att fylla i option_value fält |
add_site_option () | $ alternativ , $ värde | Liknande add_site_option () men lägger till alternativet nätverksövergripande i Multisite (vilket betyder att alternativet är lagrat i wp_options bord och inte den wp_XX_options bord där XX är webbplatsens ID). $ autoload ingår inte som webbplatsalternativ inte autoload i Multisite och detta kan inte överskridas. |
delete_site_option () | $ alternativ | Samma som delete_option () men arbetar på nätet i Multisite. |
get_site_option () | $ alternativ , $ default , $ use_cache | Liknande get_option () men hämtar nätverksövergripande alternativet i Multisite. |
update_site_option () | $ alternativ , $ värde | Identisk med update_option () men arbetar på nätet i Multisite. |
Observera att när du skapar alternativ, antingen via Alternativ API eller Inställningar API, kan du skapa poster utan värde i option_value
fält. Detta gör det möjligt för webbplatsadministratörer att fylla i det fältet vid en senare tidpunkt.
Förutom API-alternativet kan du också använda inställnings API för att interagera med data i wp_options
tabell. Med inställnings API kan du skapa inställningar som webbplatsadministratörer kan använda för att lägga till eller uppdatera data i alternativtabellen - det lägger till ett användargränssnitt för dina alternativ.
Inställnings API har mer än det Alternativ API så jag kommer inte att täcka det i detalj här, men i huvudsak har det tre element:
wp_options
tabell)De två funktionerna i inställnings API som interagerar direkt med wp_options
bordet är enligt följande:
Fungera | parametrar | anteckningar |
---|---|---|
register_setting () | $ option_group , $ OPTION_NAME , $ sanitize_callback | De $ OPTION_NAME parameter hänvisar till OPTION_NAME fält i wp_options tabell; De andra parametrarna interagerar med andra funktioner i inställnings API |
unregister_setting () | $ option_group , $ OPTION_NAME , $ sanitize_callback | Deregisters inställningar från wp_options bord - vanligtvis används med inaktivering krokar för teman eller plugins. |
Dessa funktioner lägger inte till värden i alternativen i wp_options
tabellen, men de skapar inställningar som kan innehålla värden till dem via andra funktioner i inställnings API.
De wp_options
Tabellen är unik bland WordPress-databasborden, eftersom den inte delar ett förhållande till någon av de andra tabellerna. Detta beror på att det lagrar data om webbplatsen eller nätverket, och inte innehållet. För att interagera med alternativtabellen kan du använda funktionerna i Alternativ API eller Inställnings API och du kan också använda funktioner som lägger till datanätverk i en Multisite-isolering.
I den sista delen av denna serie ser jag på Multisite, eftersom den använder några extra databastabeller som hittills inte har täckts i denna serie och skapar också flera instanser av varje kärntabell, en för varje sida.