私は自分のupload.phpファイルを使って画像をアップロードしています:
$upload_dir = wp_upload_dir();
$targetDir = $upload_dir['path'].'/';
uploads/2012/08/
にアップロードされた画像がMedia Library
に表示されないということを除いて、この例外はあるべきです。そこにそしてWPのデータベースにそれらを「登録」するための何らかの機能はありますか?
メディアタイプとして登録していないからです。すべてのアップロードはattachment
タイプのWordPress投稿です。
開始するには、それはこのようなものになります:
$file_name = 'Some Name';
$file_path = '/path/to/uploads/2012/08/04/newfile.jpg';
$file_url = 'http://url/to/uploads/2012/08/04/newfile.jpg';
$wp_filetype = wp_check_filetype($file, null);
$attachment = array(
'guid' => $file_url,
'post_mime_type' => $wp_filetype['type'],
'post_title' => $file_name,
'post_status' => 'inherit',
'post_date' => date('Y-m-d H:i:s')
);
$attachment_id = wp_insert_attachment($attachment, $file_path);
$attachment_data = wp_generate_attachment_metadata($attachment_id, $file_path);
wp_update_attachment_metadata($attachment_id, $attachment_data);
これにより、メディアパネルにエントリが作成され、また、テーマで使用しているすべてのサイズに画像が変換されます。
あなたにとって良い選択肢は、あなたのupload.php
に上記の手続きを挿入することです。そのためには、WordPressの必須ファイルも含める必要があります。そうでなければ、WordPressにどういうわけかこれを実行するように伝えなければなりません、おそらく$_REQUEST
クエリまたはcronジョブによって。
media_handle_upload
functionを掘り下げてみるべきだと思います。それはコーデックスの漠然とした記述なのでそれを code と理解するようにしてください。
あなたはあなたのためにアップロードさえ扱うためにこの関数を使うことができます、あるいはあなたはあなた自身の中に統合するためにそのコードの一部をつかむことができます。