Все ли параметры загружены в память при каждом запросе?


25

Все переменные параметров извлекаются из базы данных и загружаются в кеш при каждом запросе?

Ответы:


24

Да вроде. Когда get_optionвызов сделан, WordPress запускает функцию wp_load_alloptions, которая либо захватывает кэшированную копию всех автоматически загружаемых параметров, либо загружает все эти параметры в кэш. Затем wp_load_alloptionsвозвращает массив всех параметров автозагрузки. Если ваш параметр загружен автоматически (указывается при использовании add_optionфункции), он будет частью этого массива и будет возвращен.

Если ваш параметр не загружен автоматически, WordPress затем ищет в кеше этот параметр и возвращает значение, если оно там есть. Если это не так, последний вариант - перейти к базе данных, получить значение, установить кэш и вернуть его.

Наконец, если никакой опции не найдено вообще (например, имя опции было недействительным), WordPress сохраняет имя этой опции в кешируемом массиве с именем notoptions. Если последующие вызовы неопции сделаны, WP сначала проверяет массив notoptions, чтобы не тратить время на проверку того, чего там нет.

Если вы беспокоитесь о звонках get_optionнесколько раз за загрузку страницы, не беспокойтесь . WordPress будет кэшировать значение параметра после первого get_optionвызова независимо от того, загружен он или нет.

Проверьте источник,get_option чтобы увидеть, что происходит.


3

Нет,

только параметры, которые специально загружены с автозагрузкой, установленной в true

Смотрите http://codex.wordpress.org/Function_Reference/add_option

Поэтому, если этот параметр необходим на каждой странице, при добавлении его в базу данных установите autoload = true.

После этого просто используйте get_option как обычно - wp будет обрабатывать кеширование и т. Д.


1
WP обрабатывает кеширование независимо от автозагрузки.
chrisguitarguy

0

Да,

Нет необходимости устанавливать автозагрузку в yes / true. По умолчанию установлено значение yes: http://codex.wordpress.org/Function_Reference/add_option - последний параметр функции ($ autoload):

Должна ли эта опция автоматически загружаться функцией wp_load_alloptions () (помещает опции в кеш объекта при каждой загрузке страницы)? Допустимые значения: да или нет. По умолчанию: да

Хотя, если вы установите его в no, то опция не будет помещена в кеш.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.