Support » Allgemeine Fragen » Media Uploader in widget Formular

  • Gelöst juicylung

    (@juicylung)


    Hi, ich bin auf der Suche nach einer Möglichkeit den Media Uploader in einem Widget unterzubringen.

    Bisher habe ich den Media Uploader von Mike Jolly benutzt. Diesen aber nur in Verbindung mit Meta Boxen. Nun habe ich versucht die selbe Technik für ein Widget zu verwenden und es funktioniert leider nicht.
    jQuery ist erfolgreich eingebunden. In der „console“ bekomme ich auch erst einen Fehler wenn ich den Button betätige. Ich bin leider mit javascript nicht ganz so vertraut.
    So sieht die Fehlermeldung aus:

    Uncaught TypeError: Cannot read property ‚frames‘ of undefined
    at HTMLInputElement.<anonymous> (js-admin.js?ver=1.0.0:14)
    at HTMLInputElement.dispatch (load-scripts.php?c=1&load[]=jquery-core,jquery-migrate,utils&ver=4.7.2:3)
    at HTMLInputElement.r.handle (load-scripts.php?c=1&load[]=jquery-core,jquery-migrate,utils&ver=4.7.2:3)

    Hier ist der jQuery Code von Mike Jolly:

    jQuery(document).ready( function($){
      var custom_uploader;
        jQuery('.upload_image_button').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 File',
                button: {
                    text: 'Choose File'
                },
                multiple: false
            });
    
            //When a file is selected, grab the URL and set it as the text field's value
            custom_uploader.live('select', function() {
                attachment = custom_uploader.state().get('selection').first().toJSON();
                $('.image-upload-file').val(attachment.url);
            });
    
            //Open the uploader dialog
            custom_uploader.open();
    
        });
    
    });

    So sieht mein Formularbutton in dem Widget aus:

    <input type="button" class="button button-primary upload_image_button" id="upload_image_button" name="<?php echo $this->get_field_name('image_uri'); ?>" value="Bild hochladen" style="margin-top:5px;" />

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Das Thema „Media Uploader in widget Formular“ ist für neue Antworten geschlossen.