Как включить параметр, который имеет переменное количество значений на странице настроек с помощью register_setting?

У меня есть одна опция на странице настроек, которая может иметь от 1 до 5 значений. У меня есть базовое понимание того, как настроить одиночные значения с помощью API-интерфейсов настроек, но как я могу начать создавать разметку и т. Д. Для параметра с переменным числом значений?

Solutions Collecting From Web of "Как включить параметр, который имеет переменное количество значений на странице настроек с помощью register_setting?"

Если вы правильно используете API настроек, вы должны использовать функцию add_settings_field . Третий аргумент этой функции предназначен для функции обратного вызова, которая будет генерировать HTML для поля формы для отдельной настройки. В кодексе говорится:

Функция, которая заполняет поле желаемыми входами как часть большей формы. Имя и идентификатор входа должны совпадать с идентификатором $ id, заданным этой функцией. Функция должна эхо-вывода.

В этой функции обратного вызова вы просто пишете свой HTML-код, как и если бы WordPress не был задействован. Таким образом, вы можете настроить радиокнопки, поле выбора, мультивыбор и т. Д.

В качестве примера предположим, что вы используете add_settings_field как таковое:

 add_settings_field( 'my_setting_name', 'My Setting Name', 'my_setting_callback_function', 'general', 'my_settings_section_name' ); 

В этом фрагменте функция обратного вызова с именем «my_setting_callback_function» будет генерировать HTML для настройки. Затем вы можете сделать что-то вроде:

 function my_setting_callback_function() { ?> <select name="my_setting_name" id="my_setting_name"> <option value="1">Enabled</option> <option value="0">Disabled</option> </select> <?php } 

Как вы можете видеть, эта функция генерирует различные возможные значения для этого параметра.

Я настоятельно рекомендую прочитать эту часть Codex: http://codex.wordpress.org/Settings_API . Это хорошая работа, объясняющая API-интерфейс Settings, и в этом примере хорошая работа, иллюстрирующая, как ее использовать. Я считаю, что API немного запутан; однако он делает то, что он говорит, что должен делать, поэтому с небольшой дисциплиной и тщательной проверкой он должен хорошо работать для вас.

Удачи!