アップロードした画像の完全なローカルファイル名を取得して、それを新しいディレクトリにコピーして自分の画像処理スクリプトで処理できるようにします。これを達成するためにどのフック/アクションを調べるべきですか?
ありがとう
handle_upload
フックは、wp_handle_uploadの実行後に呼び出され、 'file'、 'url'& 'type'で構成される名前付き配列を送信します。あなたが達成する必要があるものに応じて、あなたはそれを利用するためにおそらくこのようなコードを使うことができます:
function process_images($results) {
if( $results['type'] === 'image/jpeg' ) { // or /png or /tif / /whatever
$filename = $results[ 'file' ];
$url = $results[ 'url' ];
// manipulate the image
}
}
add_action('wp_handle_upload', 'process_images');
編集:添付ファイルIDも必要な場合は、添付ファイルの追加/編集など、より高いレベルで接続するほうがよい場合があります。
add_action('add_attachment', 'process_images');
add_action('edit_attachment', 'process_images');
その場合、送信される変数はattachment_idであり、残りの部分は次のようにして導出できます。
$metadata = wp_get_attachment_metadata( $results );
ファイルのルートに対する相対パスだけでなく、ファイル名が必要な場合は、次のコード行を追加する必要があります。
$filename = substr($results['file'], ( strrpos($results['file'], '/', -1) + 1 ) ); //add +1 to remove the slash at the beginning
編集:このstrrpos()
ソリューションを投稿した直後に、私は最良のものを見つけました:
$filename = basename($results['url']);