このページのURLがhttps://polo-web.com/wp-admin/post.php?post=28101&action=editとした場合
このpost=28101をタイトル名とファイル名の入れて、画像がどこに使われているかをすぐに確認できるようにしている。画像をページに入れる際、タイトル名とファイル名は自動変換されるので楽である。
目次
「投稿ページ」に画像を入れる場合

ページの右にあるメディアのところにも変換されたファイル名が表示されるので結果を確認することができる。

uploadsフォルダに作成されるファイル(以下の3つが作成される):
post-id-28101.jpg、post-id-28101-150×150.jpg、post-id-28101-300×115.jpg
右サイドの「アイキャッチ画像を設定」に画像を入れた場合
「アイキャッチ画像を設定」の窓にドロップして入れた場合も以下のようになる。

できれば、アイキャッチであることがわかるといいが、例えば「アイキャチ投稿ID =」とか。
これでもいいか。
uploadsフォルダに作成されるファイル(以下の4つが作成される):
post-id-28101-1.jpg、post-id-28101-1-150×150.jpg、post-id-28101-1-300×169.jpg、post-id-28101-1-768×432.jpg
直接「メディアライブラリ」に画像アップロードする場合
直接メディアライブラリに入れると、投稿IDを取得できないのでファイル名を日付に変換して入れている。
タイトルは元画像のファイル名がそのまま使われるので、後で手作業で変更する必要がある。
この場合、ちょっと面倒になるが、そんなに多くは無いと思うので手作業で修正すること。

uploadsフォルダに作成されるファイル(以下の2つが作成される):
post-id-2610021554.png、post-id-2610021554-150×150.png
「WP Random Post Thumbnails」プラグインに画像を入れる場合
設定 > Random Thumbnails から入れる場合。
以下のようにタイトルは元画像のファイル名がそのまま入り、ファイル名は日付に変換されている。
画像はRandom Thumbnailsのプラグインで使われているにもかかかわらず、右側が未添付になっていることに注意。Media Scan等のプラグインは削除の対象になるので注意が必要である。

uploadsフォルダに作成されるファイル(以下の4つが作成される):
post-id-2610021610.png、post-id-2610021610-150×150.png、post-id-2610021610-300×169.png、post-id-2610021610-768×432.png
これは使われる位置が不明なので沢山のサムネイルが用意されていると思われる。
uploadsフォルダに作成されるファイル
これは、アップロードする位置によって、それにあったファイルが作成される。
function.phpに作成されるコード
以下の全てのfunction.phpに入れている。Google AIに作成してもらった。
/**
* 新規にアップロードする画像にタイトルに「投稿ID」、それと「ALT」を自動挿入するコード
*/
add_action('add_attachment', 'update_image_meta_data');
function update_image_meta_data($attachment_id) {
// 添付ファイルが画像かどうかをチェック
if (!wp_attachment_is_image($attachment_id)) {
return;
}
$parent_id = 0;
if (isset($_REQUEST['post'])) {
$parent_id = intval($_REQUEST['post']);
} else {
$parent_id = wp_get_post_parent_id($attachment_id);
}
if ($parent_id > 0) {
// 親記事のタイトルを取得
$parent_title = get_the_title($parent_id);
// 【設定】代替テキスト(alt)にする文字列(親記事のタイトル)
$alt_text = $parent_title;
// 1. タイトル(post_title)を「記事ID: 〇〇」に更新
$new_title = '投稿ID = ' . $parent_id;
wp_update_post([
'ID' => $attachment_id,
'post_title' => $new_title,
'post_name' => sanitize_title($new_title)
]);
// 2. 代替テキスト(alt属性)を更新
update_post_meta($attachment_id, '_wp_attachment_image_alt', $alt_text);
}
}
/**
* 画像アップロード時に画像の「ファイル名」を「投稿ID」に自動変換する
*/
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');
}
//ファイル名+拡張子を出力(実際に固定出力されるファイル名と流動的なID番号+拡張子)
return 'post-id-'.$filename_new.'.'.$ext;
}
/**
* 右サイドのアイキャッチ画像を設定に入れる画像のファイル名をID名に変換する
*/
add_filter('sanitize_file_name', 'rename_file', 10);
function auto_set_featured_image_from_content( $post_id ) {
// リビジョンや自動保存の場合は何もしない
if ( wp_is_post_revision( $post_id ) || ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) ) {
return;
}
// すでにアイキャッチが設定されている場合は上書きしない(お好みで変更可)
if ( has_post_thumbnail( $post_id ) ) {
return;
}
$post = get_post( $post_id );
if ( !$post ) {
return;
}
// 本文から最初の<img>タグを正規表現で探す
$output = preg_match_all( '/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches );
if ( $output && isset( $matches[1][0] ) ) {
$image_url = $matches[1][0];
// URLから添付ファイルID(メディアID)を取得
$attachment_id = attachment_url_to_postid( $image_url );
if ( $attachment_id ) {
// アイキャッチ画像として保存
set_post_thumbnail( $post_id, $attachment_id );
}
}
}
add_action( 'save_post', 'auto_set_featured_image_from_content' );Media Cleanerでスキャンした後、ファイル名をPhoenix Media Renameで変更した場合どうなるのか?
現在、Trashに39、Ignoredに79入っている。これは上を導入してファイル名、その他を変更した時点の状態になる。TRashやIgnoredのファイル名は多分、導入前の古いファイル名で登録されていると思われる。

こんな場合、Trashのファイルを移動、削除しないでとあったので、まずスキャンをやり直したいと思う。
まず、キャッシュのクリアをとのことだったが、Media Cleanerにはキャッシュのクリアボタンが無く、自動的にスキャンの際、キャッシュをクリアするらしい。
問題なくスキャンが成功した。
以下の2つのファイル名を変更するとどうなるかを検証してみる
タイトルを「Random-Thumbnail-img」に統一したいので以下のタイトルを「Phoenix Media Rename」で変更する。既にスキャンは一度実行しているので最新の状態。

WP Random Post Thumbnailsの画像はプラグインでアップロードしたらどこに入るのか
uploadsフォルダに入ると思う。ファイル名はpost-id-2608101452.pngと言った日付で変換したファイル名が入ることになる。タイトルは「Random-Thumbnail-img」と統一しても問題ない。ランダムに入るのでページIDとは関係ない画像になる。

