参考サイト: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が表示されるので簡単に識別できるようになる。
