2016-04-11 15 views
13

Sto utilizzando il codice personalizzato media upload nel mio plug-in. Nelle mie precedenti versioni (before 4.0) WordPress funziona perfettamente. Quando ho caricare audio o file immagine caricati suo successoPercorso del file di caricamento non visualizzato nel campo utilizzando wp media uploader

enter image description here

e quando clicco su "Insert Into Post" il percorso del file caricato mostrato nel campo di testo.

enter image description here

Ma quando aggiorno il mio WordPress into 4.4.2 e caricare qualsiasi tipo di file sua caricati con successo

enter image description here

e quando clicco su "INSERT INTO Post" il percorso del file file caricato non mostrato in il mio campo di testo.

enter image description here

In entrambi WordPress è il codice è 100% stessi.

Ecco il mio codice HTML:

<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"> 

E qui è il mio codice functions.php:

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'); 

E qui è il mio codice JS:

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(); 
} 

a segnalare a fileurl variabile ma mi dà un valore indefinito. Quindi, per favore aiutami a risolvere questo problema

+0

Avere riavviato WAMP o xamp signore. –

+0

Sto lavorando al mio server online – deemi

+0

Ho lo stesso problema la settimana scorsa. La mia connessione al database è stata disconnessa e la wamp non funzionava correttamente. Quando ho ricominciato tutto funzionava bene allora. –

risposta

2

Il cambiamento che nuova WordPress fatto per loro media di upload è il campo vuoto URL di collegamento.

enter image description here

Ma se si fa clic file url pulsante qui sotto quel campo e quindi fare clic su Insert Into Post il codice funziona bene :)

quindi abbiamo bisogno di un modo semplice per mettere automaticamente il valore file url nell'URL link . Non so se esiste un settaggio per wordpress o no, ma c'è un codice semplice che ho scritto in jQuery per raggiungerlo e funziona davvero bene per me.

Quello che sto veramente facendo è:

Quando l'utente premere il pulsante Insert into Post. Il mio jQuery controlla il genitore del pulsante Insert into Post e trova il valore file url e lo inserisce nel campo URL di collegamento. Questo è tutto! Semplice, giusto?

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); 
    }); 

Così Provalo e fammi sapere :)

+1

thanx alot @omer osm osm osm osm lavoro .... funziona perfettamente al 10000% – deemi

+0

felice che abbia funzionato anche per te :) – Omer

3

Perché non stai usando wp.media?

prova con questo:

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(); 
    }); 

}); 

Si aprirà la schermata di media su pulsante di scatto, e mettere l'url al campo di inserimento.

+0

bro ora il mio media up loader non è aperto con il tuo codice: '( – deemi

+0

Avrai bisogno di modificare il tuo codice Non hai bisogno di 'tb_show()'. Assicurati di pulire il vecchio codice prima di inserirne uno nuovo. E controlla eventuali errori nell'ispettore. –

1

Loro sono una nuova versione del wordpress uploader da Wordpress 3.5. Forse il modo in cui l'avete fatto non è disponibile in Wordpress 4.0

Si potrebbe trovare un tutorial di base qui: 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'); 
    } 
} 
+0

hey @jordane Ci sono due difetti ... se puoi risolvere loro ... la tua risposta funzionerà perfettamente per me .... sor per favore risolverlo – deemi

+0

Cosa intendi per due difetti? –

+0

Per prima cosa non posso scegliere nessun allegato precedente Secondo se carico un nuovo file e quando clicco su tre volte sul pulsante "scegli immagine" quindi viene visualizzato per il campo di immissione e in terzo luogo ho 2 campi di caricamento e i loro pulsanti con lo stesso id e nome in modo da chiamare due volte il codice jquery con nome diverso e id – deemi

Problemi correlati