Intereting Posts
register_post_type & 'register_meta_box_cb' проблема с созданием выделенного тега в пользовательском виджете Возможно ли хранить данные пользовательского типа отправки в отдельном наборе таблиц и все еще иметь функциональность класса wp_post? Сложный слайдер Динамически обновлять ключ в ассоциативном массиве при сохранении настроек Admin ToolBar не отображается в верхней части сайта Вложенные условные обозначения Использование функции 'strtotime' для преобразования настраиваемого мета-поля в штамп даты Сортировка страниц в цикле по полю заказа атрибутов страницы администратора? Word 403.php WordPress не найден, сервер по умолчанию использует собственную страницу 404 Apache get_edit_tag_link ничего не возвращает Почему я не могу получить доступ к метаданным пользовательских таксономии? Ошибка при создании проблемы подключения к базе данных в xampp saver Как создать единый продуктовый магазин с помощью woocommerce? Пропуск файла продукта Лучший способ получить статистику тегов?

Как создать тему страницы меню параметров для сохранения пользовательских значений

Я создал тему wordpress и новую в разработке WordPress. Я хочу создать страницу с параметрами для получения некоторых значений от пользователя, и я немного покончил с этим, но смутил, где и как сохранить эти данные, я хочу коротко создать пользовательский интерфейс ,

update: весь следующий код должен войти в ваш файл functions.php

Вероятно, лучший (и, безусловно, самый простой) способ сделать страницу параметров тем, чтобы использовать WordPress Settings API. Одна заметка … везде, где вы видите THEME_NAME в моем коде, просто замените это на какую-то уникальную фразу (я использую имя моей темы).

Сначала нам нужно сообщить WordPress, что мы будем использовать некоторые параметры темы. Мы делаем это, вызывая register_setting .

function add_theme_options_init() { register_setting( THEME_NAME . '_options_group', THEME_NAME . '_theme_options', 'validate_theme_options' ); } 

Затем создайте страницу фактических параметров, в которой будут установлены ваши параметры.

 function add_theme_options_page() { $page_title = 'Theme Options'; $menu_title = 'Theme Options'; $cap = 'manage_options'; // capability required for access to this menu $slug = THEME_NAME . '-options'; $callback = 'draw_theme_options_page'; add_options_page( $page_title, $menu_title, $cap, $slug, $callback ); } 

Теперь добавьте функцию draw_theme_options_page, используемую как обратный вызов в 'add_theme_options_page', который выведет HTML для вашей страницы параметров темы. В этом примере вы можете увидеть, что я добавляю три поля: 1) URL-адрес страницы Facebook 2) Ручка Twitter 3) Поле для добавления условий поиска twitter

 function draw_theme_options_page() { ?> <div class="wrap"> <h2>Theme Options</h2> <form method="post" action="options.php"> <?php // this should be the same as the second parameter of register_setting() $opt_name = THEME_NAME . '_theme_options'; // adds all the necessary hidden form fields settings_fields( THEME_NAME . '_options_group' ); // get the existing options $options = get_option( $opt_name ); // the options fields $opt = array( 'fb_page' => $opt_name . '[fb_page]', 'twitter' => $opt_name . '[twitter]', 'twitter_search' => $opt_name . '[twitter_search]', ); ?> <table class="form-table"> <!-- Facebook Page URL --> <tr valign="top"><th scope="row">Facebook Page</th> <td><input type="text" name="<?php echo $opt['fb_page'] ?>" value="<?php echo $options['fb_page']; ?>" /></td> </tr> <!-- Twitter Stuff --> <tr valign="top"><th scope="row">Twitter ID</th> <td><input type="text" name="<?php echo $opt['twitter'] ?>" value="<?php echo $options['twitter']; ?>" /></td> </tr> <tr valign="top"><th scope="row">Twitter Search Terms</th> <td><input type="text" name="<?php echo $opt['twitter_search'] ?>" value="<?php echo $options['twitter_search']; ?>" /></td> <td class="description">Please separate search terms using a comma</td> </tr> </table> <p class="submit"> <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /> </p> </form> </div> <?php } 

Теперь нам нужно добавить нашу функцию дезинфекции. Эта функция просто гарантирует, что в нашу базу данных не будут записаны плохо отформатированные данные.

 function validate_theme_options( $input ) { $input['fb_page'] = wp_filter_nohtml_kses( $input['fb_page'] ); $input['twitter'] = wp_filter_nohtml_kses( $input['twitter'] ); $input['twitter_search'] = wp_filter_nohtml_kses( $input['twitter_search'] ); return $input; } 

Теперь, наконец, нам действительно нужно связать все эти функции с правильными клипами WordPress, чтобы страница добавления параметров темы добавлена ​​и работает.

 add_action( 'admin_init', 'add_theme_options_init' ); add_action( 'admin_menu', 'add_theme_options_page' ); 

Этот код почти дословный, что я использую в моей собственной теме, но вам может понадобиться немного поиграть с ним и проверить наличие опечаток.

Также для получения дополнительной информации ознакомьтесь с этим сообщением о добавлении параметров плагина

Если вы не хотите, чтобы вас беспокоило кодирование всех параметров темы, возможно, вам может очень помочь приложение Option Framework Plugin . Вы просто устанавливаете этот плагин и настраиваете настройки (какой пользовательский ввод вы хотите добавить и т. Д.). Он будет выполнять задачи сохранения / получения / отображения пользовательского интерфейса.

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

Вот хорошая статья от разработчиков темы WordPress, я буквально слежу за ней прямо сейчас.

Отто имеет действительно хорошее сообщение в блоге об API-интерфейсе WordPress. Он выполняет большую работу для вас, когда дело касается сохранения значений в базе данных. Вот ссылка: Учебник по настройкам API WordPress

Если вам нравится, вы можете использовать этот плагин http://wordpress.org/extend/plugins/option-tree/