WordPressでメディアファイルをアップロードするときにアップロードされるファイル名を変更したい場合があります。 この場合、 sanitize_file_name フィルタを使用できます。 たとえば、次のコードをテーマの関数ファイルに追加すると、画像がアップロードされたときにファイル名が「記事ID_image.jpg」と同じ形式に変更されます。
// Change media filename to post_id_image in WordPress function make_filename_hash($filename) { if( isset($_REQUEST['post_id']) ) { $post_id = (int)$_REQUEST['post_id']; }else{ $post_id=0; } $info = pathinfo($filename); $ext = empty($info['extension']) ? '' : '.' . $info['extension']; $name = basename($filename, $ext); if($post_id>0){ return $post_id."_".$name . $ext; }else{ return $name . $ext; } } add_filter('sanitize_file_name', 'make_filename_hash', 10); // 출처: wordpress.stackexchange.com
なるべくチャイルドテーマを作ってチャイルドテーマの関数ファイルに上記のコードを追加してください。
メディアファイルをアップロードするときに、現在の日付と時刻を受け、ファイル名を指定したい場合は、次のようなコードを使用することができます。
// Change filename during upload based on current date and time in WordPress // 파일 업로드 시 현재 날짜와 시간으로 파일이름 변경 function make_filename_date($filename) { $info = pathinfo($filename); $ext = empty($info['extension']) ? '' : '.' . $info['extension']; $name = basename($filename, $ext); $currentDateTime = date('YmdHis'); // 날짜와 시간을 20190208054622 형식으로 받음 return $currentDateTime . $ext; } add_filter('sanitize_file_name', 'make_filename_date', 10);
実際に上記のコードを使用すると、画像ファイルをアップロードする場合は、次のように変更されます。
午後2時46分にアップロードがされたが、ファイル名には、0546(午前5時46分)に表示されます。 これは、サーバーの時間に基づいているためです。 この部分を修正したい場合は、韓国時間帯を表示するように次の行を追加します。
date_default_timezone_set("Asia/Seoul");
その後、 WordPressで設定されたタイムゾーンが「ソウル」に指定されている場合、日付と時刻が正しく変換されます。
一部のWebホスティングで、ファイル名にハングルが含まれる場合、エラーが発生する場合があります。 このような場合に、上記のコードを使用すると、ハングルで画像ファイル名が数字に変更されるため、一時的な解決策になることができるようになります。 (ハングルのURLを使用することができないWebホスティング環境でテストをしてみました。ハングルのURLをサポートしない場合、なるべく ウェブホスティングを変更することを検討してください。)
コメントを残す