Prestazioni con caricamento automatico e tabella delle opzioni


12

Sto giocando con la autoloadcolonna del optionstavolo. Non ho trovato molte informazioni su come vengono utilizzati i valori caricati automaticamente. Ho provato a print_r($GLOBALS)e ho visto che le opzioni caricate automaticamente sono memorizzate in $GLOBALS['wp_object_cache']->cache['options']['alloptions'].

C'è un altro modo per accedere a quelle variabili?

Supponiamo di dover accedere a un'opzione my_option, che è stata impostata per il caricamento automatico, più volte in diversi modelli (ad esempio header.php, una volta dentro , una volta dentro footer.php), quale metodo è raccomandato?

  1. Va bene che lo recupero $GLOBALSdall'array (poiché il valore è già qui)
  2. Devo usare get_option('my_option')una volta e globalizzare di nuovo la variabile
  3. Usa get_option('my_option')ogni volta (cosa che non vedo il punto di fare)
  4. Qualcos'altro

Risposte:


23

Non ho trovato molte informazioni su come vengono utilizzati i valori caricati automaticamente.

Non esiste un caso speciale per le opzioni caricate automaticamente, sono utilizzate allo stesso modo delle altre opzioni normali, ma consente di capire cosa significa la autoloadcolonna della optionstabella. Questa colonna determina se dobbiamo recuperare un'opzione nella fase di inizializzazione di una richiesta o dovremmo recuperare un'opzione solo su richiesta.

Ma quando si verifica questo caricamento automatico e quale funzione svolge? Tutte le opzioni di caricamento automatico vengono caricate e memorizzate nella cache per wp_load_alloptionsfunzione, che viene chiamata per is_blog_installedfunzione all'inizio di ogni richiesta HTTP, gestita da WP.

Riassumiamo: l'opzione caricata automaticamente è la stessa opzione, ma caricata all'inizio dell'elaborazione della richiesta HTTP da WP.

Supponiamo di dover accedere a un'opzione ... quale metodo è consigliato?

  1. È un cattivo approccio recuperarlo $GLOBALSdirettamente, usare get_optioninvece
  2. Globalizzare le variabili personalizzate non è il benvenuto e si consiglia di farlo il meno possibile
  3. Dal mio punto di vista è l'opzione migliore per te
  4. Anche non pensare a qualcos'altro :)

Perché usare la get_optionfunzione ogni volta che è l'opzione migliore? Perché:

  1. Il primo e il più importante perché : puoi essere sicuro che restituirà un valore aggiornato, ogni volta che lo chiami.
  2. Lo memorizzerà nella cache per il futuro riutilizzo.
  3. Permette ad altri plugin e temi di agganciare la tua opzione agganciando il option_optionnamefiltro.
  4. Preleverà un'opzione se non è ancora stata caricata.

1
+1 risposta molto istruttiva. Non
ho

@rrikesh sei il benvenuto, spero che spieghi abbastanza bene
Eugene Manuilov,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.