Upload-Dateipfad wird nicht im Feld mit wp media uploader angezeigt

Lesezeit: 5 Minuten

Benutzeravatar von deemi-D-nadeem
deemi-D-nadeem

Ich verwende benutzerdefinierte media upload in meinem Plugin. In meiner vorherigen (before 4.0) WordPress Versionen funktioniert es einwandfrei. Wenn ich eine Audio- oder Bilddatei hochlade, wird sie erfolgreich hochgeladen

Geben Sie hier die Bildbeschreibung ein

und wenn ich darauf klicke "Insert Into Post" der im Textfeld angezeigte Pfad der hochgeladenen Datei.

Geben Sie hier die Bildbeschreibung ein

Aber wenn ich meine aktualisiere WordPress into 4.4.2 und laden Sie jede Datei erfolgreich hoch

Geben Sie hier die Bildbeschreibung ein

und wenn ich auf “In den Beitrag einfügen” klicke, wird der Dateipfad der hochgeladenen Datei nicht in meinem Textfeld angezeigt.

Geben Sie hier die Bildbeschreibung ein

In beiden WordPress’s ist der Code zu 100% gleich.

Hier ist mein HTML-Code:

<input type="text" size="50" name="mp3" id="mp3" class="upload-url" />
<input id="st_upload_button" class="st_upload_button" type="button" name="upload_button" value="Upload">

Und hier ist mein Functions.php-Code:

function pro_scripts_method() {
    wp_enqueue_script('media-upload');
    wp_enqueue_script('thickbox');

    wp_register_script( 'custom-js', plugin_dir_url( __FILE__ )."js/custom.js");
    wp_enqueue_script( 'custom-js' );
}
add_action('admin_enqueue_scripts', 'pro_scripts_method');

Und hier ist mein JS-Code:

jQuery('.st_upload_button').click(function() {
    targetfield = jQuery(this).prev('.upload-url');
    tb_show('', 'media-upload.php?type=image&amp;TB_iframe=true');
    return false;
});

window.send_to_editor = function(html) {
    fileurl = jQuery(html).attr('href');
    //alert(fileurl);
    jQuery(targetfield).val(fileurl);
    tb_remove();
}

Ich warne fileurl Variable, aber es gibt mir einen undefinierten Wert. Bitte helfen Sie mir, dieses Problem zu beheben

  • Haben Sie Wamp oder Xamp neu gestartet, Sir.

    – Waqas_aamer

    11. April 2016 um 10:48 Uhr

  • Ich arbeite auf meinem Online-Server

    – deemi-D-nadeem

    11. April 2016 um 10:49 Uhr

  • Ich habe seit letzter Woche das gleiche Problem. Meine Datenbankverbindung wurde getrennt und wamp funktionierte nicht richtig. Als ich dann neu gestartet habe, funktionierte alles einwandfrei.

    – Waqas_aamer

    11. April 2016 um 10:50 Uhr

  • hmmmm, aber ich arbeite nicht lokal

    – deemi-D-nadeem

    11. April 2016 um 10:51 Uhr

  • bro mein Problem ist keine Datenbank. Da ich den Dateipfad nicht gesehen habe, als ich auf “In Post einfügen” geklickt habe, ist das Einfügen von Post weit über dem Schritt

    – deemi-D-nadeem

    11. April 2016 um 11:05 Uhr

Die Änderung, die das neue WordPress an seinem Medien-Upload vorgenommen hat, ist leer URL verknüpfen aufstellen.

Geben Sie hier die Bildbeschreibung ein

Aber wenn Sie klicken file url Schaltfläche unter diesem Feld und klicken Sie dann auf Insert Into Post dein Code funktioniert gut 🙂

Wir brauchen also eine einfache Möglichkeit, die automatisch zu setzen file url Wert in der URL verknüpfen. Ich weiß nicht, ob es dafür eine Einstellung in WordPress gibt oder nicht, aber es gibt einen einfachen Code, den ich hineingeschrieben habe jQuery um es zu erreichen und es funktioniert wirklich gut für mich.

Was ich wirklich mache ist:

Wenn der Benutzer auf die Insert into Post Taste. Mein jQuery Überprüfen Sie die Eltern davon Insert into Post Schaltfläche und finden Sie die file url Wert und fügen Sie ihn ein URL verknüpfen aufstellen. Das ist es! Einfach richtig?

jQuery('.savesend input[type=submit]').click(function(){  
         var url = jQuery(this).parents('.describe').find('.urlfile').data('link-url');
         var field = jQuery(this).parents('.describe').find('.urlfield');
         field.val(url);
     });

Also probiere es aus und lass es mich wissen 🙂

Warum benutzt du nicht wp.media?

Versuchen Sie es damit:

jQuery(document).ready(function($) {
    "use strict";

    $('.st_upload_button').on('click', function(e){
        e.preventDefault();
        var $input_field = $(this).prev();
        var custom_uploader = wp.media.frames.file_frame = wp.media({
            title: 'Add Audio',
            button: {
                text: 'Add Audio'
            },
            multiple: false
        });
        custom_uploader.on('select', function() {
            var attachment = custom_uploader.state().get('selection').first().toJSON();
            $input_field.val(attachment.url);
        });
        custom_uploader.open();
    });

});

Dadurch wird der Medienbildschirm beim Klicken auf die Schaltfläche geöffnet und die URL in das Eingabefeld eingefügt.

  • Bro, jetzt öffnet sich mein Media-Uploader nicht mit deinem Code :'(

    – deemi-D-nadeem

    18. April 2016 um 5:05 Uhr

  • Sie müssen Ihren Code ändern. Du brauchst nicht tb_show(). Achten Sie darauf, den alten Code zu bereinigen, bevor Sie den neuen einfügen. Und achten Sie auf Fehler im Inspektor.

    – dingo_d

    18. April 2016 um 7:13 Uhr

Es handelt sich um eine neue Version des WordPress-Uploaders seit WordPress 3.5. Vielleicht ist die Art und Weise, wie Sie es gemacht haben, in WordPress 4.0 nicht verfügbar

Ein grundlegendes Tutorial finden Sie hier:
http://www.webmaster-source.com/

jQuery(document).ready(function($){


    var custom_uploader;


    $('#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 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();
            $('#upload_image').val(attachment.url);
        });

        //Open the uploader dialog
        custom_uploader.open();

    });


});
<label for="upload_image">
    <input id="upload_image" type="text" size="36" name="ad_image" value="http://" /> 
    <input id="upload_image_button" class="button" type="button" value="Upload Image" />
    <br />Enter a URL or upload an image
</label>
//This part Should be in function.php (or similar)

add_action('admin_enqueue_scripts', 'my_admin_scripts');

function my_admin_scripts() {
    if (isset($_GET['page']) && $_GET['page'] == 'my_plugin_page') {
        wp_enqueue_media();
        wp_register_script('my-admin-js', WP_PLUGIN_URL.'/my-plugin/my-admin.js', array('jquery'));
        wp_enqueue_script('my-admin-js');
    }
}

  • Hey @jordane Es gibt zwei Störungen … wenn du sie beheben kannst … deine Antwort wird perfekt für mich funktionieren …. also bitte behebe sie

    – deemi-D-nadeem

    21. April 2016 um 12:39 Uhr

  • Was meinst du mit zwei Fehlern?

    – Jordane HEILUNG

    21. April 2016 um 12:40 Uhr

  • Erstens kann ich keinen vorherigen Anhang auswählen. Zweitens, wenn ich eine neue Datei hochlade und dreimal auf die Schaltfläche “Bild auswählen” klicke, wird sie im Eingabefeld angezeigt, und drittens habe ich 2 Upload-Felder und ihre Schaltflächen mit derselben ID und demselben Namen Ich rufe zweimal Ihren JQuery-Code mit unterschiedlichem Namen und ID auf

    – deemi-D-nadeem

    21. April 2016 um 12:45 Uhr

1399510cookie-checkUpload-Dateipfad wird nicht im Feld mit wp media uploader angezeigt

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

Privacy policy