Czy wszystkie zmienne opcji są pobierane z bazy danych i ładowane do pamięci podręcznej na każde żądanie?
Tak, w pewnym sensie. Po get_option
wywołaniu WordPress uruchamia funkcję o nazwie wp_load_alloptions
, która albo pobiera buforowaną kopię wszystkich automatycznie ładowanych opcji, albo ładuje wszystkie te opcje do pamięci podręcznej. Następnie wp_load_alloptions
zwraca tablicę wszystkich automatycznie ładowanych opcji. Jeśli twoja opcja jest ładowana automatycznie (określona podczas korzystania z add_option
funkcji), będzie ona częścią tej tablicy i zostanie zwrócona.
Jeśli twoja opcja nie jest ładowana automatycznie, WordPress następnie sprawdza pamięć podręczną specjalnie dla tej opcji i zwraca wartość, jeśli jest dostępna. Jeśli to pominie, ostatecznym wyjściem jest przejście do bazy danych, pobranie wartości, ustawienie pamięci podręcznej, a następnie jej zwrócenie.
Wreszcie, jeśli w ogóle nie zostanie znaleziona żadna opcja (np. Nazwa opcji była niepoprawna), WordPress przechowuje nazwę tej opcji w tablicy buforowanej o nazwie notoptions
. Jeśli zostaną wykonane kolejne wywołania tej opcji, WP najpierw sprawdza tablicę notoptions, aby nie tracić czasu na sprawdzanie czegoś, czego nie ma.
Jeśli martwisz się, że dzwonisz get_option
wiele razy podczas ładowania strony, nie rób tego. WordPress zbuforuje wartość opcji po pierwszym get_option
wywołaniu, niezależnie od tego, czy jest automatycznie ładowana.
Sprawdź źródło,get_option
aby zobaczyć, co się dzieje.
Nie,
tylko opcje, które są specjalnie ładowane z automatycznym ładowaniem ustawionym na true
Zobacz http://codex.wordpress.org/Function_Reference/add_option
Jeśli więc jest to opcja potrzebna na każdej stronie, po dodaniu jej do bazy danych ustaw autoload = true.
Następnie po prostu użyj get_option normalnie - wp zajmie się buforowaniem itp.
Tak,
Nie ma potrzeby ustawiania automatycznego ładowania na tak / prawda. Domyślnie jest ustawione na tak: http://codex.wordpress.org/Function_Reference/add_option - parametr ostatniej funkcji ($ autoload):
Jeśli jednak wybierzesz opcję no, opcja nie zostanie umieszczona w pamięci podręcznej.
źródło