Обновляет значение опции (настройки) в базе данных. Ожидает не экранированную строку.
Эта функция может быть использована для того, чтобы добавлять новые опции, вместо add_option(): update_option сначала проверяет существует ли указанная опция, если нет, то работа передается add_option(). Название опции очищается, перед тем как опция добавляется в базу данных.
До версии 4.2 нельзя было указать параметр $autoload. Это значит, что функции нельзя было указать, что добавляемая опция является частной и её не над загружать в память вместе со всеми опциями. Для этого приходилось использовать функцию add_option() (см. описание).
Важно! По умолчанию параметр $autoload = yes для новых опций. Т.е. при обычном добавлении опции через эту функцию, её значение будет автоматически подгружаться в память. В некоторых случаях это может привести в перегрузке памяти, поэтому если опция нужна для каких то редких действий, важно указать параметр $autoload = no.
Если указанное значение опции равно старому значению, то функция ничего не обновляет и обрывает свою работу.
Ожидает не экранированную строку, т.е. функция сохраняет переданное значение как есть, и если там есть экранированные символы, они будут записаны как есть. Поэтому если в опции есть экранированные символы, значение нужно обработать функцией wp_unslash() и затем передать фукнции.
Новое значение настройки, которое будет добавлено в БД.
$autoload(строка|true|false)
Нужно ли обновить установленную метку (autoload) опции. Эта метка определяет загружать ли опцию при запуске WordPress.
Для обратной совместимости также принимаются значения 'yes' и 'no'.
true - при первом получении всех опций сайта, опция добавляется в глобальный массив опций. Затем при обращении к этой опции, она берется из кэша, а не из базы данных.
false - опция не будет загружаться со всеми опциями. При обращении к этой опции будет делаться отдельный запрос к БД.
null - оставить решение на усмотрение стандартных эвристик WordPress.
Автозагрузка слишком большого количества опций может привести к проблемам с производительностью, особенно если эти опции редко используются. Поэтому:
Для опций, которые используются в нескольких местах на фронтенде, рекомендуется загружать их автоматически, установив значение true.
Для опций, которые используются только на нескольких конкретных URL, рекомендуется не загружать их автоматически, установив значение false.
Для несуществующих опций значение по умолчанию - null, что означает, что WordPress определит значение автозагрузки автоматически.
Если такой опции не существует, то update_option() создаст её автоматически.
Обратите внимание, что с версии 4.2 в update_option() мы можем указать параметр autoload, который будет обновлен, если опция существует и передан в функцию add_option() если опции не существует и её нужно создать...
Если опции extract_length еще не существует, то добавим её с использованием функции add_ooption(), в которой укажем, чтобы опция не загружалась автоматически (сделаем её частной).