it-swarm-ja.com

ファイルアップロード付きのカスタム投稿タイプ - 「エディタに送信」ではなく「フィールドとして設定」

カスタム投稿タイプを作成しました。ファイルをアップロードする必要があります。次のチュートリアルを見つけました。これは、1つの例外を除いて必要なことを実行するための調整に成功しました。

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

このチュートリアルでは、「エディタに送信」ボタンを上書きするためのJavaScriptコードを提供していますが、それは私がやりたいことではありません。私は自分の表示テンプレートでそれを引き出すことができるようにポストのメタ値としてファイル名を設定したいです。理想的には、ファイルアップロードのthickboxに "投稿サムネイルとして設定"のような別のカスタムリンクを表示したいと思います。

私のカスタムJavaScriptファイルにはこれが含まれています(最初の関数は私の投稿タイプにカスタマイズされていますが、2番目の関数はカスタマイズされていません)。

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

});

ファイル名を割り当てるために追加の隠しフィールドが必要な場合は、おそらくそれを解決できます。実際に必要なのは、 "エディタに送信"の代わりに使用するthickboxへの新しいリンクを追加するためのフックです。

私はそれが理にかなっていると思います - 私はすべての正しい用語がわからない。

ありがとうございます。

2
goatlady

私はこれを試してみたが、あなたがファイルのURLを持っていて、あなたが必要としているのがファイル名だけであるなら、あなたはこれからあなたのコードを変更することができます。

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

これに:

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

こうすればあなたの「エディタに送る」ボタンはファイル名だけを挿入するでしょう。

1
Bainternet