画像アップロード時に自動的にファイル名を記事IDに変更する

画像アップロード時に自動的にファイル名を記事IDに変更する

2026年2月5日

参考サイト:https://qiita.com/wpstfd/items/da9c27251ce9e8c921bf

投稿ぺーじから画像ファイルをアップロードするとき、自動でファイル名を記事IDに変更する。

記事の投稿ページ画面(ブロックエディタ、クラシックエディタ)から画像をアップロードして挿入する場合のみ動作するようになっている。
当然、メディアライブラリへ直接アップロードした場合、画像ファイル名は変更されるが、メディアタイトルとして元のファイル名が残ることになる。変更は自己責任で!

以下をfunctions.phpに貼り付ける。

function rename_file($filename) {

global $filename_new;

// 記事ID取得 (クラシックエディタ)
$post_id = isset( $_POST['post_id'] ) ? (int)$_POST['post_id'] : ''; 
// 記事ID取得 (ブロックエディタ)
if( !$post_id ){
    $post_id = isset( $_POST['post'] ) ? (int)$_POST['post'] : ''; 
}

// ファイル拡張子を取得、jpgとかpngとか
$ext = pathinfo( $filename, PATHINFO_EXTENSION );   

// 投稿、固定ページのIDをファイル名とする
if( $post_id ){
    $filename_new = $post_id;

// メディアライブラリへ直接アップロードした場合のファイル名(日付時刻を取得)
}else{
    $filename_new = date_i18n('ymdHi');
}
//ファイル名+拡張子を出力
return $filename_new.'.'.$ext;
}

add_filter('sanitize_file_name', 'rename_file', 10);

これはパーマリンクを「投稿名」にしたときにどうなるかを検証。

画像のファイル名がIDの46という数字で表示されるようになる。同じページで追加した順番で46から46-1、46-2というように後ろに数字が追加されていく。

この46というIDは投稿ページのどこに表示されるのかが分かりたい。

以下のようにパーマリンクを「投稿名」にしているのでIDは表示されない。
それでも画像のファイル名にIDが付与されるので、どこかにIDが存在することになる。

サイトURL:https://sasebo.geo.jp/画像アップロード時に自動的にファイル名を記事id/

編集画面のURLにpost=46とファイル名と同じID名が表示されている。

編集画面URL:https://sasebo.geo.jp/wp-admin/post.php?post=46&action=edit

これで、このID名がファイルに付与されるのがわかった。

このID名で検索できるのか?

2. IDを調べて直接アクセスする場合(最も簡単) 

特定のページを見つけるだけであれば、URLに直接入力する方が早いです。 

  • 方法: ブラウザのURL欄に以下のように入力します。
    https://あなたのサイトURL/wp-admin/post.php?post=123&action=edit
    123の部分を調べたいIDに変更)

3. IDの調べ方

  • マウスオーバー: 管理画面の「投稿一覧」にて、各タイトルの上でマウスをホバー(カーソルを乗せる)すると、ブラウザの左下にURLが表示され、その中の post=XXXX という数字がIDです。
  • 編集画面: 投稿・固定ページの編集画面を開き、URLバーの post=XXXX を確認します。
  • プラグイン: 「Show IDs」などのプラグインを使うと、一覧画面に「ID」列が追加され、一目で分かるようになります。 

YYDevelopment – Show Pages IDプラグインを使うとIDが表示されるので簡単に調べることができる。

このIDが付与された画像は他のページには使い回しすることが出来ないということになる。
そんな場合はほとんどないと思うが….
この場合は、一度ダウンロードして再度アップロードした方が良いかも。

メディアのIDとも違うので投稿ページのIDを必ず見る必要がある。

YYDevelopment – Show Pages IDプラグインを使うとIDが表示されるので簡単に識別できるようになる。