Загрузка изображений WordPress в пользовательских проблемах виджета

Я разрабатываю свой собственный плагин с функцией загрузки изображений. Я добавил этот код:

... <p>
        <label for="<?php echo $this->get_field_id('photo'); ?>">Photo URL:</label>
        <input class="widefat image_hso" type="text" name="<?php echo $this->get_field_name('photo'); ?>" id="<?php echo $this->get_field_id('photo'); ?>" value="<?php echo $photo ;?>">
        </p>

        <p>
        <button class="image_upload_hso widefat">Select Image</button>
        </p> ... 

И PHP часть:

... function photo_upload_option($hook) {

        if( $hook != 'widgets.php' ) 
            return;

        //enque Javasript Media API
        wp_enqueue_media();

        wp_enqueue_script( 'uploadphoto', plugin_dir_url( __FILE__ ) . 'js/upload_image.js');

}


// register widget
add_action('admin_enqueue_scripts', 'photo_upload_option'); 
add_action('widgets_init', create_function('', 'return register_widget("wp_hso_plugin");'));
add_action( 'wp_enqueue_scripts', 'register_plugin_styles' ); ...

И JS:

jQuery(function($){
  var frame,
      addImgLink = $('.image_upload_hso'),
      imgIdInput = $('.image_hso');
  addImgLink.on( 'click', function( event ){
    event.preventDefault();
    if ( frame ) {
      frame.open();
      return;
    }
    frame = wp.media({
      title: 'Select or Upload Image',
      button: {
        text: 'Use this Image'
      },
      multiple: false
    });
    frame.on( 'select', function() {
      var attachment = frame.state().get('selection').first().toJSON();
      imgIdInput.val( attachment.url );
    });
    frame.open();
  });}); 

Проблема: когда я впервые добавляю свой виджет и нажимаю на кнопку "Выбрать изображение" - я вижу перезагрузку страницы. После этого, если я нажимаю еще раз "Выбрать изображение" - он работает нормально, и я вижу медиа библиотеку WP и могу загрузить или выбрать изображение. Когда я нажимаю "использовать это изображение", все идет хорошо, затем я нажимаю кнопку "Сохранить" в WP Widget, и мой виджет сохраняется нормально, но когда я снова нажимаю "Выбрать изображение" - я вижу перезагрузку страницы. В чем дело?

0 ответов

Другие вопросы по тегам