Codex

Создание страниц настройки

Contents

Введение

Создавать собственные панели настроек в WordPress относительно легко.

Для начала, чтобы создать элемент меню и новую страницу, посмотрите статью «Добавление административных меню».

Если придерживаться этой структуры, WordPress сам позаботится о создании настроек, обновлении, сохранении и перенаправлении. Он также проверит права доступа и сделает остальную закулисную магию.

Тег формы

Когда у вас появилась страница, нужно создать HTML-форму. Используйте этот код:

<form method="post" action="options.php">

Магия nonce

После открытия тега формы вставьте следующий PHP-код:

<?php wp_nonce_field('update-options'); ?>

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

Кнопка «Обновить настройки»

Теперь вы, возможно, захотите вставить стандартную кнопку «Обновить настройки», HTML-код которой выглядит так:

<p class="submit">
<input type="submit" name="Submit" value="<?php _e('Save Changes') ?>" />
</p>

Обратите внимание на использование функции _e() для перевода текста. Подробности — в статье «Локализация WordPress».

Названия полей

Используйте поля с теми же названиями, какие вы хотите дать создаваемым настройкам (которые будут храниться в таблице options), например:

<input type="text" name="new_option_name" value="<?php echo get_option('new_option_name'); ?>" />

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

Поле action

Теперь создайте скрытое поле под названием «action» со значением «update».

<input type="hidden" name="action" value="update" />

Поле page_options

В заключение, создайте скрытое поле под названием «page_options», содержащее разделённый запятыми список всех настроек, которые нужно записать при сохранении.

<input type="hidden" name="page_options" value="new_option_name,some_other_option,option_etc" />

Закрываем теги

Затем, очевидно, следует закрыть тег формы. Если хотите, можно добавить ещё одну кнопку «Обновить настройки» — в WordPress так принято.

<p class="submit">
<input type="submit" name="Submit" value="<?php _e('Save Changes') ?>" />
</p>
</form>
Эта страница помечена как незавершённая. Вы можете помочь проекту, дополнив её.