it-swarm.com.de

Benutzerdefinierter Beitragstyp mit Datei-Upload - muss "als Feld festlegen" statt "an Editor senden"

Ich habe einen benutzerdefinierten Beitragstyp erstellt. Es muss eine Datei hochgeladen werden. Ich habe das folgende Tutorial gefunden, an das ich mich mit einer Ausnahme erfolgreich angepasst habe:

http://www.webmaster-source.com/2010/01/08/ using-the-wordpress-uploader-in-your-plugin-or-theme/

Das Tutorial enthält JavaScript-Code, um die Schaltfläche "An Editor senden" zu überschreiben. Dies ist jedoch nicht das, was ich tun möchte. Ich möchte den Dateinamen als Metawert für den Beitrag festlegen, damit ich ihn in meine Anzeigevorlage einfügen kann. Im Idealfall möchte ich einen anderen benutzerdefinierten Link in der Thickbox zum Hochladen von Dateien anzeigen, ähnlich wie "Als Miniaturansicht nach dem Hochladen festlegen".

Meine benutzerdefinierte JavaScript-Datei enthält Folgendes (die erste Funktion wurde an meinen Beitragstyp angepasst, die zweite nicht):

jQuery(document).ready(function() {

jQuery('#upload_resource_button').click(function() {
 formfield = jQuery('#upload_resource').attr('name');
 tb_show('', 'media-upload.php?type=file&TB_iframe=true');
 return false;
});

window.send_to_editor = function(html) {
 imgurl = jQuery('img',html).attr('src');
 jQuery('#upload_image').val(imgurl);
 tb_remove();
}

});

Wenn ich ein zusätzliches verstecktes Feld benötige, um den Dateinamen wieder zuzuweisen, kann ich das wahrscheinlich herausfinden - ich muss wirklich wissen, welchen Hook ich verwenden soll, um der Thickbox einen neuen Link hinzuzufügen, der anstelle von "Send To Editor" verwendet wird.

Ich hoffe, das macht Sinn - ich bin mir nicht sicher, ob die Terminologie stimmt.

Vielen Dank!

2
goatlady

ich kann nicht sagen, dass ich das ausprobiert habe, aber wenn Sie die URL der Datei haben und alles, was Sie brauchen, der Dateiname ist, können Sie einfach Ihren Code wie folgt ändern:

    window.send_to_editor = function(html) {
      imgurl = jQuery('img',html).attr('src');
      jQuery('#upload_image').val(imgurl);
      tb_remove();
    }

dazu:

    window.send_to_editor = function(html) {
      imgurl = jQuery('img',html).attr('src');
      filename = substring(imgurl.lastIndexOf('/'), imgurl.length);
      jQuery('#upload_resource').val(filename);
      tb_remove();
    }

und auf diese Weise fügt Ihre Schaltfläche "An Editor senden" nur den Dateinamen ein.

1
Bainternet