Функция form_option()
в WordPress предназначена для вывода значения определенной опции сайта, предварительно обработанного для безопасного использования в HTML-форме. Обычно применяется для установки значения атрибута value
в элементах input
, что удобно для настройки параметров сайта.
form_option( string $option )
form_option()
выводит значение указанной опции из базы данных, которое очищается с помощью функции esc_attr()
для защиты от XSS-уязвимостей. Это делает ее полезной для вставки динамического контента в формы, при этом сохраняя безопасность данных.
Параметры
- $option (строка, обязательный) — имя опции, значение которой необходимо вывести.
Возвращаемое значение
- null — функция ничего не возвращает (возвращает
null
), так как значение опции выводится непосредственно в HTML.
Пример 1: Настройка размеров крупного изображения
тот пример демонстрирует, как использовать form_option()
для подстановки значений в HTML-форму. Допустим, что значения для ширины и высоты крупных изображений хранятся в опциях large_size_w
и large_size_h
. Функция form_option()
подставит эти значения в форму, позволяя администратору изменять настройки.
<tr>
<th scope="row"><?php _e( 'Large Image Size' ); ?></th>
<td>
<fieldset>
<legend class="screen-reader-text">
<span><?php _e( 'Large Image Size' ); ?></span>
</legend>
<label for="large_size_w"><?php _e( 'Width' ); ?></label>
<input name="large_size_w"
type="number"
step="1"
min="0"
id="large_size_w"
value="<?php form_option( 'large_size_w' ); ?>"
class="small-text"/>
<br/>
<label for="large_size_h"><?php _e( 'Height' ); ?></label>
<input name="large_size_h"
type="number"
step="1"
min="0"
id="large_size_h"
value="<?php form_option( 'large_size_h' ); ?>"
class="small-text"/>
</fieldset>
<input name="large_crop"
type="checkbox"
id="large_crop"
value="1" <?php checked( '1', get_option( 'large_crop' ) ); ?> />
<label for="large_crop">
<?php _e( 'Crop large image to exact dimensions (normally images are proportional)' ); ?>
</label>
</td>
</tr>
Результат: Поля ширины и высоты в настройках формы будут автоматически заполнены текущими значениями из опций large_size_w и large_size_h. Также, если флажок обрезки активирован (значение 1), чекбокс будет отмечен.
Пример 2: Установка значения опции в текстовое поле
Допустим, что у нас есть пользовательская опция с именем site_custom_text
. Мы можем использовать form_option()
для отображения ее значения в текстовом поле формы.
<tr>
<th scope="row"><label for="site_custom_text"><?php _e( 'Custom Text' ); ?></label></th>
<td>
<input type="text"
name="site_custom_text"
id="site_custom_text"
value="<?php form_option( 'site_custom_text' ); ?>"
class="regular-text" />
</td>
</tr>
Результат: В поле ввода будет показано текущее значение опции site_custom_text
, что позволяет пользователю изменить его и сохранить.
Пример 3: Использование с чекбоксом
Если опция принимает только два значения (например, 1
и 0
), то form_option()
также можно использовать для отображения значения в чекбоксе. В этом примере создадим чекбокс, чтобы отобразить опцию enable_feature
.
<tr>
<th scope="row"><label for="enable_feature"><?php _e( 'Enable Feature' ); ?></label></th>
<td>
<input type="checkbox"
name="enable_feature"
id="enable_feature"
value="1" <?php checked( get_option( 'enable_feature' ), 1 ); ?> />
<label for="enable_feature"><?php _e( 'Activate this feature' ); ?></label>
</td>
</tr>
Результат: Чекбокс будет отмечен, если опция enable_feature
установлена на 1
.
Заключение
Функция form_option()
полезна при создании форм с настройками сайта в WordPress, так как она позволяет легко выводить значения опций в безопасном формате.