Ответы:
Да вроде. Когда get_option
вызов сделан, WordPress запускает функцию wp_load_alloptions
, которая либо захватывает кэшированную копию всех автоматически загружаемых параметров, либо загружает все эти параметры в кэш. Затем wp_load_alloptions
возвращает массив всех параметров автозагрузки. Если ваш параметр загружен автоматически (указывается при использовании add_option
функции), он будет частью этого массива и будет возвращен.
Если ваш параметр не загружен автоматически, WordPress затем ищет в кеше этот параметр и возвращает значение, если оно там есть. Если это не так, последний вариант - перейти к базе данных, получить значение, установить кэш и вернуть его.
Наконец, если никакой опции не найдено вообще (например, имя опции было недействительным), WordPress сохраняет имя этой опции в кешируемом массиве с именем notoptions
. Если последующие вызовы неопции сделаны, WP сначала проверяет массив notoptions, чтобы не тратить время на проверку того, чего там нет.
Если вы беспокоитесь о звонках get_option
несколько раз за загрузку страницы, не беспокойтесь . WordPress будет кэшировать значение параметра после первого get_option
вызова независимо от того, загружен он или нет.
Проверьте источник,get_option
чтобы увидеть, что происходит.
Нет,
только параметры, которые специально загружены с автозагрузкой, установленной в true
Смотрите http://codex.wordpress.org/Function_Reference/add_option
Поэтому, если этот параметр необходим на каждой странице, при добавлении его в базу данных установите autoload = true.
После этого просто используйте get_option как обычно - wp будет обрабатывать кеширование и т. Д.
Да,
Нет необходимости устанавливать автозагрузку в yes / true. По умолчанию установлено значение yes: http://codex.wordpress.org/Function_Reference/add_option - последний параметр функции ($ autoload):
Должна ли эта опция автоматически загружаться функцией wp_load_alloptions () (помещает опции в кеш объекта при каждой загрузке страницы)? Допустимые значения: да или нет. По умолчанию: да
Хотя, если вы установите его в no, то опция не будет помещена в кеш.