Я пытаюсь сохранить параметр из внешнего интерфейса, но пока не могу найти, как это сделать.
Итак, идея состоит в том, чтобы дать владельцу блога простую форму с раскрывающимся списком, в котором можно выбрать другой файл stylesheet.css. Я построил его для области wp-admin, и он отлично работает, но я хочу сделать то же самое во внешнем интерфейсе,
я пытался включить wp-admin/options.php в заголовок, но ничего, просто ошибки,
я отправляю форму в «wp-admin/options.php», но она перенаправляет меня на страницу wp-admin/options.
вот форма фронтенда:
<form id="save-theme" name="save-theme" action="/wp-admin/options.php" method="post">
<select>
<option>Select Theme</option>
<option>Red</option>
<option>Dark</option>
<option>White</option>
</select>
<button name="update-options" type="submit">Save</button>
<?php wp_nonce_field('update-options'); ?>
</form>
большое спасибо!
Эм, а как вы идентифицируете пользователей? В бэкенде есть логин, а во фронтенде его нет. Должны ли пользователи устанавливать эту опцию для всего сайта?
@hakre, у меня есть страницы входа/регистрации в интерфейсе для пользователей, и я даю доступ к форме ниже только администраторам, да, мне нужно изменить весь сайт.
большое спасибо @Bainternet!!! я нашел решение своего вопроса, но ваш способ лучше!
Рад, что смог помочь
Разве этот код не будет всегда выдавать
update failed
сообщение всякий раз, когда устанавливаются таблица стилей и клавиши действий?@ t31os: да, плохо, я добавил пункт else. Спасибо
Это может быть очевидно для большинства людей, но я думаю, что так и должно быть .
Вы не хотите публиковать /wp-admin/options.php из внешнего интерфейса, это плохая идея и может вызвать проблемы.
Чтобы обновить параметры из внешнего интерфейса, просто используйте update_option() и убедитесь, что вы правильно проверили. вот пример использования вашего кода с небольшими исправлениями:
Теперь это предполагает, что ключ опции или имя имеют стиль my_theme.
Может быть, Theme Switcher Reloaded (плагин WordPress) содержит достаточно информации о том, как это можно сделать?