Nelle parti precedenti di questa serie, abbiamo esaminato le tabelle nel database di WordPress e le relazioni tra di esse.
In questa parte coprirò un tavolo diverso dagli altri: il wp_options
tavolo. Come puoi vedere dal diagramma sottostante, questa è l'unica tabella che si trova da sola:
La tabella delle opzioni memorizza un diverso tipo di dati dalle altre tabelle: invece di memorizzare dati sul contenuto del tuo sito, memorizza i dati sul sito stesso. I dati vengono scritti nella tabella delle opzioni utilizzando l'API Options o l'API Settings, entrambi costituiti da un insieme di funzioni utilizzate per aggiungere, aggiornare ed eliminare i dati da questa tabella.
È possibile aggiungere valori alle opzioni esistenti e aggiungere nuovi record alla tabella quando si desidera creare nuove opzioni.
In questo tutorial vedrò i diversi aspetti della tabella delle opzioni e il modo in cui interagisci con esso:
wp_options
tavolowp_options
tavolowp_options
tavoloDarò solo una panoramica delle API e di come interagiscono con la tabella delle opzioni - se vuoi saperne di più, leggi le serie di Tom McFarlin sull'API Settings.
Come il wp_options
la tabella memorizza i dati relativi alla configurazione e all'amministrazione del sito nel suo complesso, l'accesso ad esso è limitato. Per poter modificare le impostazioni e le opzioni, gli utenti dovranno avere il manage_options
capacità. L'unico ruolo utente predefinito con questa funzionalità è il ruolo di amministratore (e in Multisite, il ruolo di amministratore di rete).
Ciò significa che se devi aggiungere opzioni a cui altri ruoli utente hanno accesso, dovrai assegnare il manage_options
capacità a loro. Questo comporta dei rischi, quindi fallo solo se sei sicuro!
La tabella delle opzioni ha una struttura simile alle tre tabelle di metadati. Ha quattro campi:
option_ID
option_name
option_value
autoload
- specifica se l'opzione viene caricata automaticamente su ogni caricamento della pagina - il valore predefinito è sì
in una singola installazione del sito e no
in Multisite.Ogni record nel option_name
il campo sarà un valore univoco: se aggiungi più di un valore a un'opzione, WordPress lo memorizza in una matrice in option_value
campo. Un buon esempio di questo è il active_plugins
opzione, che memorizza una serie di plugin attivati sul tuo sito.
Quando si aggiungono, modificano o eliminano dati nel wp_options
tabella, è necessario specificare sempre il option_name
, come mostrerò più avanti in questo tutorial.
Il wp_options
tabella è popolata da una delle tre fonti:
Ci sono un certo numero di opzioni integrate in WordPress: puoi vederle tutte nel Riferimento opzioni. Ma puoi anche crearne uno tuo.
Per creare nuove opzioni nel tuo tema o plug-in, devi utilizzare l'API Options o l'API Settings. Tratterò questi in maggior dettaglio qui sotto.
L'API delle opzioni comprende otto funzioni che ti consentono di aggiungere, ottenere, aggiornare o eliminare le opzioni:
Funzione | parametri | Gli appunti |
---|---|---|
add_option () | $ opzione , $ value , $ deprecato , $ autoload | Solo $ opzione è obbligatorio. Se c'è un record esistente con il tuo $ opzione parametro come il suo valore option_name campo, WordPress aggiungerà il tuo $ value a un array nel option_value campo per quel record, altrimenti creerà un nuovo record. |
delete_option () | $ opzione | Elimina tutti i campi per quell'opzione |
get_option () | $ opzione , $ di default | $ di default (facoltativo) è il valore predefinito da restituire se nessun valore è memorizzato rispetto all'opzione nel database. |
update_option () | $ opzione , $ NEW_VALUE | $ NEW_VALUE è il valore che popolerà il option_value campo |
add_site_option () | $ opzione , $ value | Simile a add_site_option () ma aggiunge l'opzione a livello di rete in Multisito (il che significa che l'opzione è memorizzata nel file wp_options tavolo e non il wp_XX_options tavolo dove XX è l'ID del sito). $ autoload non è incluso poiché le opzioni del sito non si caricano automaticamente in Multisite e questo non può essere sovrascritto. |
delete_site_option () | $ opzione | Lo stesso di delete_option () ma funziona in rete in Multisite. |
get_site_option () | $ opzione , $ di default , $ use_cache | Simile a get_option () ma recupera l'opzione a livello di rete in Multisito. |
update_site_option () | $ opzione , $ value | Uguale a update_option () ma funziona in rete in Multisite. |
Nota che durante la creazione delle opzioni, tramite l'API Options o l'API Settings, puoi creare record senza valore nel file option_value
campo. Ciò consente agli amministratori del sito di popolare quel campo in un secondo momento.
Oltre all'API Opzioni, puoi anche utilizzare l'API Impostazioni per interagire con i dati in wp_options
tavolo. L'API Settings consente di creare impostazioni che gli amministratori del sito possono utilizzare per aggiungere o aggiornare dati nella tabella delle opzioni - aggiunge un'interfaccia utente alle opzioni.
L'API Settings ha più dell'API Options, quindi non lo coprirò in dettaglio qui, ma essenzialmente ha tre elementi:
wp_options
tavolo)Le due funzioni nell'API Impostazioni che interagiscono direttamente con wp_options
tabella sono i seguenti:
Funzione | parametri | Gli appunti |
---|---|---|
register_setting () | $ option_group , $ option_name , $ sanitize_callback | Il $ option_name parametro si riferisce al option_name campo nel wp_options tavolo; gli altri parametri interagiscono con altre funzioni nell'API Impostazioni |
unregister_setting () | $ option_group , $ option_name , $ sanitize_callback | Annulla le impostazioni dal wp_options tabella - normalmente utilizzata con ganci di disattivazione per temi o plug-in. |
Queste funzioni non aggiungono valori alle opzioni nel wp_options
tabella, ma creano impostazioni che possono avere valori aggiunti a loro tramite altre funzioni nell'API Impostazioni.
Il wp_options
tabella è unica tra le tabelle del database di WordPress in quanto non condivide una relazione con nessuna delle altre tabelle. Questo perché memorizza i dati sul sito o sulla rete e non sul contenuto. Per interagire con la tabella delle opzioni, è possibile utilizzare le funzioni nell'API Opzioni o nell'API Impostazioni e utilizzare anche funzioni che aggiungono dati a livello di rete in un isolamento Multisito.
Nella parte finale di questa serie vedrò Multisite, poiché utilizza alcune tabelle di database aggiuntive che non sono state trattate finora in questa serie e crea anche più istanze di ciascuna delle tabelle principali, una per ogni sito.