WordPressで画像アップロード時に登録される情報
WordPressで画像をアップロードした場合、2つのテーブルに情報が登録される
・wp_posts テーブルに画像パス
・postmeta テーブルに画像の代替え文字(alt)
wp_posts テーブルに登録される情報
パラメータ | 意味 | 値の例 |
---|---|---|
ID | ID | 1501 |
post_author | 投稿者 | 1 |
post_date | 画像のアップロード日時 | 2015-02-10 12:07:45 |
post_date_gmt | 画像のアップロード日時Gmt | 2015-02-10 3:07:45 |
post_content | 本文 | (画像の場合は空白) |
post_title | 画像のタイトル | 1139150245147 |
post_excerpt | 抜粋文 | (画像の場合は空白) |
post_status | 画像の状態 | inherit |
comment_status | open | open |
ping_status | open | open |
post_password | パスワード | (設定されていなければ空白) |
post_name | 画像の名前 | 1139150245147 |
to_ping | ピン先 | |
pinged | ピンバックした履歴 | |
post_modified | 画像を更新した日時 | 2015-02-10 12:07:45 |
post_modified_gmt | 画像を更新した日時 | 2015-02-10 3:07 |
post_content_filtered | 画像の場合は意味なし | |
post_parent | 親投稿ID | 1500(投稿記事のID) |
guid | 画像のパス(URI) | https://test.com/wp-content/uploads/2022/12/110245147.jpg |
menu_order | 画像の場合は意味なし | 0 |
post_type | 種類 | attachment |
post_mime_type | コンテンツタイプ | image/jpeg |
comment_count | コメント数 | 0 |
postmeta テーブルに登録される情報
meta_id | post_id | meta_key | meta_value |
---|---|---|---|
プラマイリID | wp_postsでのID | 画像情報のキー | 情報 |
31 | 13 | _wp_attached_file |
画像名を置き換える |
32 | 13 | _wp_attachment_metadata |
画像のメタデータ |
33 | 13 | _wp_attachment_image_alt |
画像の代替え文字 |
WordPressでDB保存された画像に関連する情報
投稿ページ内のメタ情報をみてアイキャッチ画像を探す
postmeta テーブルに登録されているmeta_key
テーマによっては数が増える。_thumbnail_idでアイキャッチ画像のpost_idを指定している。
//Cocoonで 1記事投稿で生成されるmeta_key 値 _edit_lock 1669621837:1 _thumbnail_id 18
アイキャッチのサイズはfunctionで設定されています。
_wp_attachment_metadataについて
_wp_attachment_metadataに保存される画像のシリアライズデータ(メタデータ)
シリアライズデータとは配列やオブジェクトをデータベースに記録する際に使われるデータ形式で、Exif情報とよばれるもの。スマホ撮影の画像には、撮影場所の位置情報やコピーライトが含まれるときがあるので注意する。
//(例)
a:6:{
s:5:"width";
i:863;
s:6:"height";
i:410;s:4:"file";
s:17:"2022-11-19-20.png";
s:8:"filesize";
i:25735;
s:5:"sizes";
a:5:{
s:8:"thumb100";
a:5:{
s:4:"file";s:25:"2022-11-19-20-100x100.png";
s:5:"width";i:100;
s:6:"height";i:100;
s:9:"mime-type";
s:9:"image/png";
s:8:"filesize";
i:5316;
}s:8:"thumb150";a:5:{
s:4:"file";s:25:"2022-11-19-20-150x150.png";
s:5:"width";i:150;s:6:"height";i:150;s:9:"mime-type";s:9:"image/png";s:8:"filesize";i:9674;
}s:8:"thumb120";a:5:{
s:4:"file";s:24:"2022-11-19-20-120x68.png";
s:5:"width";i:120;s:6:"height";i:68;s:9:"mime-type";s:9:"image/png";s:8:"filesize";i:4815;
}s:8:"thumb160";a:5:{
s:4:"file";s:24:"2022-11-19-20-160x90.png";
s:5:"width";i:160;s:6:"height";i:90;s:9:"mime-type";s:9:"image/png";s:8:"filesize";i:7242;
}s:8:"thumb320";a:5:{
s:4:"file";s:25:"2022-11-19-20-320x180.png";
s:5:"width";i:320;s:6:"height";i:180;s:9:"mime-type";s:9:"image/png";s:8:"filesize";i:19426;
}
}s:10:"image_meta";
a:12:{
s:8:"aperture";
s:1:"0";
s:6:"credit";s:0:"";
s:6:"camera";s:0:"";
s:7:"caption";s:0:"";
s:17:"created_timestamp";
s:1:"0";
s:9:"copyright";s:0:"";
s:12:"focal_length";
s:1:"0";
s:3:"iso";
s:1:"0";
s:13:"shutter_speed";
s:1:"0";
s:5:"title";s:0:"";
s:11:"orientation";
s:1:"0";
s:8:"keywords";
a:0:{}
}
}
投稿ページのalt入力の扱いについて
投稿記事を書く際に画像のaltを記述しないとaltは入力されない。下のコードをfunctuon.phpに追加することで投稿記事のalt=””の場合は_wp_attachment_image_alt文字にするというもの。テーマによっては自動で挿入される。
//-------------------------------------------------------------
// 投稿画像のalt=""のときライブラリのaltを挿入する
//------------------------------------------------------------
function my_set_img_alt_title( $content ) {
global $wpdb;
if ( preg_match_all( '/<img [^>]+alt=""[^>]+>/i', $content, $images ) ) {
foreach( $images[0] as $image ) {
if ( preg_match( '/src=[\'"]([^\'"]+)[\'"]/i', $image, $src ) ) {
if ( preg_match( '/([^\/]+?)(-e\d+)?(-\d+x\d+)?(\.\w+)?$/', $src[1], $file ) ) {
$attachiment_id = (int)$wpdb->get_var( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_name=%s", $file[1] ) );
if ( $attachiment_id ) {
$alt = get_post_meta( $attachiment_id, '_wp_attachment_image_alt', true );
$replace = str_replace( 'alt=""', 'alt="' . esc_attr( $alt ) . '" ', $image );
$content = str_replace( $image, $replace, $content );
}
}
}
}
}
return $content;
}
add_filter( 'the_content', 'my_set_img_alt_title' );
//----------------------------
上のコードが掲載されてる情報サイト
alt属性を自動入力するプラグインについて
サポート » プラグイン » alt属性を自動入力するプラグインについて alt属性を…