Обработка следующей формы в админке, но база данных постоянно возвращает пустую ячейку, где должна быть информация. Помощь!!
<form action="options.php" method="post">
<input type="hidden" value="admin_bar" name="option_page"><input type="hidden" value="update" name="action"><input type="hidden" value="fd5754f034" name="_wpnonce" id="_wpnonce"><input type="hidden" value="/accessibilitysite/wp-admin/options-general.php?page=admin_bar&settings-updated=true" name="_wp_http_referer">
<table class="form-table">
<tbody><tr valign="top"><th scope="row">Admin Toggle</th>
<td><input type="checkbox" value="admin_bar_toggle" name="admin_bar_[admin_bar_toggle]"><p>Turn Admin Bar On ?</p></td>
</tr>
</tbody></table>
<p class="submit">
<input type="submit" value="Save Changes" class="button-primary">
</p>
</form>
Эммм….
value=""
? Флажкам по-прежнему нужно значение.простите, глупая ошибка. Это все еще не сохраняет ничего полезного. Я знаю, что это новичок. Извиняюсь
Как указал Энди, если параметр не внесен в белый список,
options.php
он не сохранит ваши данные, как правило, самый простой способ внести параметр (или набор параметров) в белый список — это использоватьregister_setting
без этого, хотя ваш вариант не проходит мимо белого списка. Однако Энди предоставил вам решение… 🙂Глупая ошибка HTML. Проблема была в ценности. Его удаление позволило коду сохранить строку «on», когда флажок был установлен, и я могу построить свою логику вокруг этого.
t31os правильно указывает на
register_setting
, который является частью относительно нового API, описанного здесь: codex.wordpress.org/Settings_APIВам также может быть полезен этот учебник: chipbennett.net/2011/02/17/…
options.php
не сохраняет автоматически в базе данных все, что вы в нее публикуете. Вы также должны указать странице, какие параметры она должна искать в опубликованных данных.Я вижу, что вы установили
option_page
значениеadmin_bar
, что составляет половину решения. Другая половина — добавить имена опций в белый список. Вы используете имя элемента формы,admin_bar_[admin_bar_toggle]
которое будет отображаться$_POST['admin_bar_']['admin_bar_toggle']
при отправке формы с установленным флажком. Этот фильтр должен сказатьoptions.php
, что вы хотите сохранить эту опцию:После этого вы должны найти то, что ищете, в опции с именем
admin_bar_
.