Intereting Posts
Заменить постоянную таксономию Переименование wp-admin без жесткого кодирования. Это действительно возможно? Переключатели таксономии WordPress Загружаемый контент только для подписчиков? Показывать роль пользователя рядом с комментарием Как создать форму и отобразить ее содержимое в виде таблицы в панели администратора? Общее количество комментариев пользователя, исключая комментарии на свои собственные сообщения Если нет результатов поиска, покажите сообщения из альтернативного поискового запроса Какова наилучшая практика для получения сайта от локального до онлайн? Как добавить комментарий к скриптам, используя функцию в wordpress? пустая белая страница, когда опция post / update / change и т. д. Отдельная страница «Виджеты» для каждого языка Отправить PDF-ссылку по электронной почте на основе выбора переключателя wp_nav_menu () отметит текущий элемент предка пользовательского типа сообщения Как вы можете переопределить проверку is_multisite в wp-login.php для индивидуального входа / регистрации?

Нужна помощь в понимании / кодировании с помощью API настроек

Итак, я сделал что-то вроде ниже, но я просто (я ожидаю текстовое поле Facebook)?

Надеюсь, это не слишком грязно. Я новичок в настройках API …

add_action('admin_init', function() { register_setting('elem_opts', 'elem_opts', 'elem_validate_opts'); add_settings_section('elem_opts_form', 'Elements Theme Options', 'elem_opts_form_cb', 'elems_opts'); add_settings_field('elem_opts_form', 'Facebook', 'elem_opts_social_fb_cb', 'elems_opts', 'elem_opts_form'); }); function elem_opts_social_fb_cb() { $opts = get_option('elem_opts'); if (empty($opts) || !is_array($opts)) { $opts = array(); } ?> <input type="text" name="elem_opts[fb]" value="<?php echo $opts['fb'] ? $opts['fb'] : ''; ?>" /> <?php } add_action('admin_menu', function() { add_theme_page('Elements Options', 'Elements Options', 'manage_options', 'elem_opts', 'elem_opts_cb'); }); function elem_validate_opts($input) { return $input; } function elem_opts_form() { ?> <p>Enable social network links, by entering your username for the respective social networks</p> <?php } function elem_opts_cb() { ?> <div class="wrap"> <h2>Elements Theme Options</h2> <form action="options.php" method="post"> <?php settings_fields('elem_opts'); do_settings_sections('elem_opts'); ?> <input type="submit" name="Submit" value="Save changes" /> </form> </div> <?php } 

Solutions Collecting From Web of "Нужна помощь в понимании / кодировании с помощью API настроек"

У вас есть некоторые функции обратного вызова и смешение идентификатора, попробуйте следующее:

 add_action('admin_init', function() { register_setting('elem_opts', 'elem_opts', 'elem_validate_opts'); add_settings_section('elem_opts_form1', 'Elements Theme Options', 'elem_opts_form', 'elem_opts'); add_settings_field('elem_opts_form', 'Facebook', 'elem_opts_social_fb_cb', 'elem_opts', 'elem_opts_form1'); }); function elem_opts_social_fb_cb() { $opts = get_option('elem_opts'); if (empty($opts) || !is_array($opts)) { $opts = array(); } ?> <input type="text" name="elem_opts[fb]" value="<?php echo $opts['fb'] ? $opts['fb'] : ''; ?>" /> <?php } add_action('admin_menu', function() { add_theme_page('Elements Options', 'Elements Options', 'manage_options', 'elem_opts', 'elem_opts_cb'); }); function elem_validate_opts($input) { return $input; } function elem_opts_form() { ?> <p>Enable social network links, by entering your username for the respective social networks</p> <?php } function elem_opts_cb() { ?> <div class="wrap"> <h2>Elements Theme Options</h2> <form action="options.php" method="post"> <?php settings_fields('elem_opts'); do_settings_sections('elem_opts'); ?> <input type="submit" name="Submit" value="Save changes" /> </form> </div> <?php } 

которые дают мне это:

введите описание изображения здесь

и в следующий раз попробуйте использовать разные имена и идентификаторы для каждой функции, callback, section и slug страницы.

См. Здесь для справки: включение API настроек в WordPress Themes . В частности, см. Стр. 10.

Ваша первая проблема, хотя я не знаю, что это приведет к тому, что раздел формы / поле не будет выводиться, заключается в том, что вы передаете ту же строку, что и первый аргумент, как add_settings_section() и add_settings_field() . Для add_settings_field() первым аргументом является ID самого поля установки , поэтому он, вероятно, не должен совпадать с первым аргументом, переданным в add_settings_section() , который является идентификатором раздела настроек .