Intereting Posts
Как я могу использовать WP_Query для отображения только 1 сообщения из пользовательского типа сообщения, если запрос возвращает сообщения с идентификатором соответствия в пользовательском поле Subversion, github и т. Д. Системы управления версиями / репозитории Календарь событий «все в одном»: пользовательский запрос – получение каждого события. Экземпляр Regex работает в regexr, но не если я фильтрую содержимое Как вызвать функцию на определенной странице, например «contact-us» из функции function.php дочерней темы Система заказа через WordPress TwentyTen: перегрузка файлов template.php и get_template_part Как я могу просмотреть файл readme.txt для включения встроенных изображений, видео … перед отправкой нового плагина для просмотра на wordpress.org? Статус перехода не работает Как я могу заменить адреса электронной почты на адреса BitMessage? Различные шаблоны для каждого уровня категории Как отобразить все настраиваемые поля, связанные с типом сообщения – В АДМИНИСТРАЦИИ? Невозможно вызвать функцию Javascript – область? Как добавить страницу под настраиваемый тип сообщения? AMP – Изменить rel = "canonical" из functions.php

Как загрузить изображение на странице параметров плагина

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

function register_team_show_case_setting() { //register our settings register_setting('my_team_show_case_setting', 'layout'); register_setting('my_team_show_case_setting', 'color'); register_setting('my_team_show_case_setting', 'image'); } function submenu_callback() { ?> <div class="wrap"> <h2>Team Showcase Setting</h2> <form method="post" action="options.php"> <?php settings_fields('my_team_show_case_setting'); ?> <?php do_settings_sections('my_team_show_case_setting'); ?> <table class="form-table"> <tr valign="top"> <th scope="row">Layout</th> <td> <select class="select-box" name="layout" value="<?php echo esc_attr(get_option('layout')); ?> class="form-control"> <option></option> <option value="Grid" <?php if (get_option('layout') == "Grid") echo 'selected="selected"'; ?>>Grid</option> <option value="Grid-without-tab" <?php if (get_option('layout') == "Grid-without-tab") echo 'selected="selected"'; ?>>Grid-without-tab</option> <option value="Row" <?php if (get_option('layout') == "Row") echo 'selected="selected"'; ?>>Row</option> </select> </td> </tr> <tr valign="top"> <th scope="row">Color Schema</th> <td> <select class="select-box" name="color" value="<?php echo esc_attr(get_option('color')); ?> class="form-control"> <option value="orange" <?php if (get_option('color') == "orange") echo 'selected="selected"'; ?> >orange</option> <option value="green" <?php if (get_option('color') == "green") echo 'selected="selected"'; ?>>green</option> <option value="blue" <?php if (get_option('color') == "blue") echo 'selected="selected"'; ?>>blue</option> </select> </td> </tr> <tr valign="top"> <th scope="row">Background Image</th> <td> <input type="file" name="image" /> </td> </tr> </table> <?php submit_button(); ?> </form> </div> <?php } 

Solutions Collecting From Web of "Как загрузить изображение на странице параметров плагина"

Лучшее название для этого было бы: Как использовать загрузчик мультимедиа WordPress для загрузки изображений на страницу настроек.

1- Добавьте необходимые сценарии, чтобы показать загрузчик мультимедиа:

 add_action('admin_footer', function() { /* if possible try not to queue this all over the admin by adding your settings GET page val into next if( empty( $_GET['page'] ) || "my-settings-page" !== $_GET['page'] ) { return; } */ ?> <script> jQuery(document).ready(function($){ var custom_uploader , click_elem = jQuery('.wpse-228085-upload') , target = jQuery('.wrap input[name="logo"]') click_elem.click(function(e) { e.preventDefault(); //If the uploader object has already been created, reopen the dialog if (custom_uploader) { custom_uploader.open(); return; } //Extend the wp.media object custom_uploader = wp.media.frames.file_frame = wp.media({ title: 'Choose Image', button: { text: 'Choose Image' }, multiple: false }); //When a file is selected, grab the URL and set it as the text field's value custom_uploader.on('select', function() { attachment = custom_uploader.state().get('selection').first().toJSON(); target.val(attachment.url); }); //Open the uploader dialog custom_uploader.open(); }); }); </script> <?php }); 

2- Настроить необходимые медиа-загрузчики:

 add_action('admin_enqueue_scripts', function(){ /* if possible try not to queue this all over the admin by adding your settings GET page val into next if( empty( $_GET['page'] ) || "my-settings-page" !== $_GET['page'] ) { return; } */ wp_enqueue_media(); }); 

3- Теперь добавьте кнопку рядом с полем изображения для вызова медиа-загрузчика:

 <input type="file" name="logo" /> <button class="button wpse-228085-upload">Upload</button> 

После того как загрузчик работает, вы можете обработать поле изображения ( input[name="logo"] ), как и любое другое поле настроек, и сохранить его значение в своих настройках.

Надеюсь, это поможет.