【ha-Basic】本文内に挿入した画像の「alt」属性を自動でページタイトルに置き換える方法

公開日: 更新日: 制作備忘録
Knowledge Base Wordpress ha-Basic テーマ




SEOに効果があるのかどうかは別として、属性があるのだから設定しておいて間違いはないでしょ!というカスタマイズです。

WordPressの投稿編集画面からメディアを追加すると、alt属性が設定でき、自動的にimgタグ内へalt属性が挿入されるようになっているのはご存知でしょう。

このalt属性というのは、どんな画像なのかを説明するための文字列で、画像が表示できない環境で閲覧した場合に表示されるほか、検索エンジンクローラーに対して画像の内容を知らせるためのものでもあります。

SEOに効果があるのかどうかは別としてと冒頭に書いたのは

  • alt属性をページの順位決定のために検索エンジンが見てるのかどうかが不明なこと
  • キーワードスパムと同じく、ページの内容と関係ないalt属性が設定されていることでマイナスとなる可能性があること

などプラスになるのかマイナスになるのか、はたまた何も関係がないのかが明白でないからです。

ただ最近ではあまりないことではありますが、前者の「画像が表示できない環境の人」へ表示する文字列としては設定しておいた方が親切なのではないかと思います。

今回は投稿の本文内にある画像に含まれるalt属性をすべて投稿タイトルにするカスタマイズ方法を紹介します。以下に紹介するコードはページを表示する段階でalt属性に何かの文字列があるのかないのかに関わらず投稿タイトルにするものですから、既にalt属性を設定しているサイトで使うとせっかくの設定が台無しになることとなりますのでご注意ください。

☆☆ この機能は【ha-Basic】テーマ バージョン1.1で実装(対応)済みです ☆☆

【ha-Basic】本文内に挿入した画像の「alt」属性を自動でページタイトルに置き換える方法

【ha-Basic】テーマの編集画面から、「a-insert.functions.php」を開き、以下のコードを追加するだけです。

//記事内のalt、titleを自動で全部記事タイトルにする
function auto_alt_filter($html) {
  global $post;
  $post_title = get_the_title();
	$html = preg_replace('|alt="[^"]*"|U', '$1 alt="'.esc_attr($post_title).'"', $html);
	$html = preg_replace('|title="[^"]*"|U', '$1 title="'.esc_attr($post_title).'"', $html);
  return $html;
}
add_filter('the_content', 'auto_alt_filter');
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. 上のようなことがないのに更新できない
  6. 特に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。

コードを転載する場合には

ご自身のサイトで当ページのコードを転載される場合には必ず当ページへのリンクを入れていただきますようお願いいたします

コードについては
で掲載されているものをそのまま使わせていただきました。

このコードではalt属性やtitle属性がもともと入っている場合でもすべて投稿タイトルが上書きされますので、それらの属性がない場合にだけ動くようにするには上のリンク先ページを参考にしてください。


こんな簡単なコードでできるなんて・・・と個人的には感動してしまいました。紹介いただいているページの作者に感謝です!ただ、この方法についてあまり類似記事がないことから、

  • やっぱりalt属性の入力ってあまり効果がないのか??
  • はたまた有効な方法だからあえて紹介しないのか??

のいずれかでしょう(困)。ただマイナスとなる可能性が高い関係ない内容を書くわけではないので設定しておいて無駄はないと思います。

いつでもご相談・サイトカスタマイズの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】