Comprensione e utilizzo della tabella delle opzioni di WordPress

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:

  • Accesso al wp_options tavolo
  • Struttura del wp_options tavolo
  • Popolazione del wp_options tavolo
  • L'API delle opzioni
  • L'API delle impostazioni

Darò 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. 

Accesso alla tabella wp_options

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!

Struttura della tabella wp_options

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

Popolazione della tabella wp_options

Il wp_options tabella è popolata da una delle tre fonti:

  • le schermate Impostazioni predefinite
  • schermate delle opzioni del tema
  • impostazioni e schermate delle opzioni che aggiungi tramite plugin

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.

Utilizzando l'API delle opzioni

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.

Utilizzo dell'API Impostazioni

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:

  • l'impostazione (i dati nel file wp_options tavolo)
  • il campo (che è usato per aggiungere e modificare dati)
  • la sezione delle impostazioni, che è un gruppo di campi correlati.

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.

Sommario

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.