Czy wszystkie opcje są ładowane do pamięci na każde żądanie?


25

Czy wszystkie zmienne opcji są pobierane z bazy danych i ładowane do pamięci podręcznej na każde żądanie?

Odpowiedzi:


24

Tak, w pewnym sensie. Po get_optionwywoł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_alloptionszwraca tablicę wszystkich automatycznie ładowanych opcji. Jeśli twoja opcja jest ładowana automatycznie (określona podczas korzystania z add_optionfunkcji), 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_optionwiele razy podczas ładowania strony, nie rób tego. WordPress zbuforuje wartość opcji po pierwszym get_optionwywołaniu, niezależnie od tego, czy jest automatycznie ładowana.

Sprawdź źródło,get_option aby zobaczyć, co się dzieje.


3

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.


1
WP obsługuje buforowanie bez względu na automatyczne ładowanie.
chrisguitarguy,

0

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):

Czy ta opcja powinna być automatycznie ładowana przez funkcję wp_load_alloptions () (umieszcza opcje w pamięci podręcznej obiektów przy każdym ładowaniu strony)? Prawidłowe wartości: tak lub nie. Domyślnie: tak

Jeśli jednak wybierzesz opcję no, opcja nie zostanie umieszczona w pamięci podręcznej.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.