CG
(@du-bist-der-lenz)
WordPress ではキャプションに書いた説明が、altに優先されると解釈しています。さて、「alt設定が全て消えてしまっている」とは、添付ファイルのページを開いても過去のすべてが記載したものが消えているのですね。アップデート時に問題が起こったのではないか、何らかのプラグインが干渉していることは考えられませんか。
こんにちは
ここ(https://make.wordpress.org/core/2016/11/11/improving-accessibility-of-image-alternative-text-in-4-7/)での説明を読むと確かに、「この変更は既に公開されているコンテンツには影響しません」と書かれていますが、それがどの部分にかかっているのかちょっと分からないですね・・・
変更の元になったチケットにあるソースの更新内容を見ても、以前投稿したものは引き続きタイトルがaltに入るようにはなっていません。
また、WordPress4.7に変更して、過去のaltが全部空っぽになって困った人の投稿もあります。
その解決策は上記URLの投稿にもありますが、以下のプラグインをインストールして有効にします。
https://wordpress.org/plugins/automatic-image-alt-attributes/
私は利用したことがないので、うまく動かなくてもちょっとアドバイスできませんが、参考まで。
ご回答ありがとうございます。
添付ファイルのページ(投稿記事)のソースを見ると、全てalt=””になっていることが確認できます。記事の編集画面(html)で見ても同様です。
プラグインは停止して確認しましたが、問題なさそうです。アップデート時に問題が起こった可能性がありそうですが調べることができませんので、現状のまま修正を考えています。
やはり、ひとつずつ修正ということになるのでしょうか?
プラグイン「SEO Friendly Images」で自動挿入できるそうですが、
画像タイトルをaltに反映させる設定はなさそうでした。
こんにちは、
添付ファイルのページで、altが表示できないというのは、テーマのテンプレートの作り方で変わります。
get_the_title( メディアID )
で、タイトルは取得できると思いますので それをaltに付ければOKだと思います。
実際に、altが添付ファイルのページで表示できるケースは、悪い見本になりますが、raindrops というテーマで表示を確認することが出来ますので、時間がある時にでも確認してみてください。(image.php)
4.7の変更に合わせたアップデートを、し忘れていたので1.483までは、表示できると思います。
次のバージョンで、alt消そうかな、
munyagu様
ありがとうございます。プラグイン試してみました。
アイキャッチ画像への反映と画像添付時に自動挿入が確認できました。
2サイトで試しましたが、アイキャッチ画像以外は反映しませんでした。
更新待ちになりそうでしょうか。
こんにちは
既存の投稿の画像の alt が消えたのは気になりますが・・・。
表示段階で全ての alt にタイトルを設定するのはどうでしょうか。
function my_set_img_alt_title( $content ) {
if ( ! preg_match_all( '/<img [^>]+>/i', $content, $matches ) ) {
return $content;
}
$images = array();
foreach( $matches[0] as $image ) {
if ( preg_match( '/wp-image-([0-9]+)/i', $image, $class_id ) && ( $id = absint( $class_id[1] ) ) ) {
$images[ $image ] = $id;
}
}
foreach ( $images as $image => $id ) {
// $image_meta = wp_get_attachment_metadata( $id );
// $alt = $image_meta['image_meta']['title'];
$image_post = get_post( $id );
$alt = $image_post->post_title;
// alt 属性がないまたは alt="" の場合のみ、alt を追加する。
$replace_image = str_replace( ' alt=""', '', $image );
if ( false === strpos( $replace_image, ' alt=' ) ) {
$replace_image = str_replace( '<img ', '<img alt="' . esc_attr( $alt ) . '" ', $replace_image );
$content = str_replace( $image, $replace_image, $content );
}
}
return $content;
}
add_filter( 'the_content', 'my_set_img_alt_title' );
ishitaka様
こんにちは
使用させて頂きました。ありがとうございます!
編集前:<img class=”*****” src=”https://******png” alt=””
編集後:<img alt=”画像タイトル” class=”*****” src=”https://******.png”
画像タイトルが反映されました。altが前にきてもSEO上問題ないのでしょうか?
出来ればアイキャッチ画像にも反映させたいのですが、教えて頂けますでしょうか?
よろしくお願い致します。
アイキャッチ画像の alt 属性にタイトルを設定するコードの例です。
function my_post_thumbnail_html( $content, $post_id, $thumbnail_id ){
$image_post = get_post( $thumbnail_id );
$alt = $image_post->post_title;
$replace_image = str_replace( ' alt=""', '', $content );
if ( false === strpos( $replace_image, ' alt=' ) ) {
$content = str_replace( '<img ', '<img alt="' . esc_attr( $alt ) . '" ', $replace_image );
}
return $content;
}
add_filter( 'post_thumbnail_html', 'my_post_thumbnail_html', 10, 3 );
あと、HTML タグの属性の順番に規定はありません。よって SEO 的にも問題はないと思います(たぶん)。
設定できました。
親切にご説明して頂きとても助かりました。
ありがとうございました!