mildfuzz
  • 0
Мастер

Мой флажок не сохраняет свое значение

  • 0

Обработка следующей формы в админке, но база данных постоянно возвращает пустую ячейку, где должна быть информация. Помощь!!

<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&amp;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>
Share
  1. Эммм…. value="" ? Флажкам по-прежнему нужно значение.

    • 0
  2. options.php не сохраняет автоматически в базе данных все, что вы в нее публикуете. Вы также должны указать странице, какие параметры она должна искать в опубликованных данных.

    Я вижу, что вы установили option_page значение admin_bar, что составляет половину решения. Другая половина — добавить имена опций в белый список. Вы используете имя элемента формы, admin_bar_[admin_bar_toggle] которое будет отображаться $_POST['admin_bar_']['admin_bar_toggle'] при отправке формы с установленным флажком. Этот фильтр должен сказать options.php, что вы хотите сохранить эту опцию:

    function admin_page_whitelist_options( $whitelist_options ) {
        $whitelist_options['admin_bar'] = array( 'admin_bar_' );
        return $whitelist_options;
    }
    add_filter( 'whitelist_options', 'admin_page_whitelist_options' );
    

    После этого вы должны найти то, что ищете, в опции с именем admin_bar_ .

    • 0

Оставить ответ

You must login to add an answer.