wp.media undefiniert mit WordPress Media Uploader

Lesezeit: 3 Minuten

Benutzer-Avatar
max

Bearbeiten: Andere Variationen von Skripten scheinen auch nicht zu funktionieren, wp_enqueue_media() geht in Ordnung, aber es sieht so aus, als ob das Skript, das die wp.media enthält, nicht enthalten ist.

Ich versuche, den WordPress Media Uploader in einem benutzerdefinierten Plugin zu verwenden, erhalte aber immer wieder die folgende Fehlermeldung:

TypeError: undefined is not an object (evaluating 'wp.media.frames')

Mein Javascript-Code:

jQuery(document).ready(function(){

  var mediaUploader;

  jQuery('#upload-button').click(function(e) {
    e.preventDefault();
    // If the uploader object has already been created, reopen the dialog
      if (mediaUploader) {
      mediaUploader.open();
      return;
    }
    // Extend the wp.media object
    mediaUploader = 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
    mediaUploader.on('select', function() {
      var attachment = mediaUploader.state().get('selection').first().toJSON();
      jQuery('#logo').val(attachment.url);
    });
    // Open the uploader dialog
    mediaUploader.open();
  });

});

Die .js-Dateien werden wie folgt registriert:

/* Add the media uploader script */
  function my_media_lib_uploader_enqueue() {
    wp_enqueue_media();
    wp_register_script( 'media-lib-uploader-js', plugins_url( 'media-lib-uploader.js' , __FILE__ ), array('jquery') );
    wp_enqueue_script( 'media-lib-uploader-js' );
  }
  add_action('admin_enqueue_scripts', 'my_media_lib_uploader_enqueue');

  • Als Tipp, Sie können sich Zeit/Mühe sparen, indem Sie das „konfliktsichere“ Dokument bereithalten: jQuery(function($) { // inside here, you can use $ instead of typing jQuery, such as $('#upload-button').click....});

    – zufälliger_Benutzername

    21. Januar 2017 um 14:31 Uhr

  • OK, um zu helfen, wäre es nützlich zu wissen Wenn Sie erhalten den Fehler. Darüber hinaus könnten Sie uns mit dem Debugging auch mitteilen wo in deinem Code der Fehler endet immer geworfen. Ist dies Ihr erster Versuch? Hattest du es jemals zum Laufen? Wenn nicht, würde ich dringend empfehlen, dem Beispiel in den offiziellen WP-Dokumenten zu folgen: wp.media

    – zufälliger_Benutzername

    21. Januar 2017 um 14:35 Uhr

  • Ja, ich hatte es einmal funktioniert, aber plötzlich hörte es auf. Das war ungefähr zu der Zeit, als meine Website auf 4.7.1 aktualisiert wurde. Der Fehler tritt auf, wenn ich auf die Schaltfläche Hochladen klicke. Der Fehler wird in die Zeile geworfen mediaUploader = wp.media.frames.file_frame = wp.media({

    – max

    21. Januar 2017 um 14:41 Uhr

  • Verwenden Sie Ihre Entwicklerkonsole, um das Skript zu debuggen: Setzen Sie einen Pausenpunkt in dieser Zeile, und dann können Sie Dinge wie den Wert von /console.log inspizieren wpund wp.mediaetc.

    – zufälliger_Benutzername

    21. Januar 2017 um 14:43 Uhr

  • Auch wenn ich den Code aus den offiziellen WP-Dokumenten verwende, erhalte ich die folgende Fehlermeldung: TypeError: wp.media is not a function. (In 'wp.media', 'wp.media' is undefined)..

    – max

    21. Januar 2017 um 14:52 Uhr

Das Problem wurde gelöst, das Problem war, dass wp_enqueue_media(); ruft die Skripte in die auf Fusszeile der Seite. Da ich irgendwo eine die()-Funktion verwendet habe, wurden die Skripte nicht geladen.

lege das wp_enqueue_media Funktion in Ihrer Enqueue-Skriptfunktion.

Beispiel:

add_action('wp_enqueue_scripts', 'prince_load_scripts');

function prince_load_scripts(){
wp_enqueue_media();
//Yor scripts goes here...
}

Ich hatte auch ein ähnliches Problem … Die Skripte wurden auf einer bestimmten Seite nicht geladen, insbesondere die Skripte wp-media, die zu dem Fehler “wp.media is not defined” führten … alle Lösungen funktionierten nicht . Es stellte sich heraus, dass der Inhalt dieser Seite zu umfangreich und mein PHP-Speicherlimit zu niedrig war. Das Einrichten von MemoryLimit 256-> 512 hat bei mir funktioniert …

  • Nach Tagen der Untersuchung und Fehlersuche in Plugin-Dateien … Vielen Dank.

    – Alioguschan

    13. Dezember 2021 um 22:28 Uhr

1360990cookie-checkwp.media undefiniert mit WordPress Media Uploader

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy