WordPress3.0で、画像のalt属性とtitle属性を入れ替える。

2010年07月20日 22時17分 正午の月齢:8.7  月名:九日月  潮汐:小潮 月齢:8.7[九日月] 潮汐:小潮
(最終更新日:2019年09月17日)
14年前に投稿 | WordPress | コメントはありません

3分ぐらいで読めます。

この記事は情報が古い場合があります。

WordPress 2.6などは、画像等をアップロードして、タイトル欄にテキストを入力すれば、自動的にalt属性にもtitle属性と同じテキストが適用されました。

WordPress 2.9あたりから、厳密にtitle属性とalt属性を使い分けるため、入力欄も別々になりました。それはそれでいいのですが、両方に文字を入れるの面倒だなぁ、とずっと思っていました。Another HTML-lint gatewayではalt属性を重視されます。それなのに代替テキスト欄ではなく、タイトル欄のほうが必須入力になってる…。Another HTML-lint gatewayの点数を気にする者としては、気になって仕方がありません。こうなったら、改造しかない。

title属性とalt属性の使い分けや違いについては、ここでは触れません。あくまで自分の都合のいいようにWordPressを改造することが目的です。

とはいうものの、どこをいじるべきか。これにはDEVOLEN [WordPress]サムネイル機能使用時に、サムネイル画像のaltが空になるのを直す方法が、参考になりました。WordPress 3.0のmedia.phpでは、648行目の

'alt'    => trim(strip_tags( get_post_meta($attachment_id, '_wp_attachment_image_alt', true) )),

'alt'    => trim(strip_tags( $attachment->post_title )),

にすればalt属性をtitle属性と同じにできます。しかし、この方法は画像等をアップロードした時のみ有効で、すでにアップロードが完了しているファイルには無効です。とりあえずアップロードだけ完了して、あとでテキストをいじることが多いので、この方法はボツ。またalt属性をtitle属性と同様にできるものの、別々のテキストにしようとすると逆に手間がかかります。理想はあくまでもalt属性とtitle属性の入れ替えです。さらにすでにアップロードが完了しているファイルにも適用したい!!

というわけで、探しました。media.phpの226行目を

$html = '<img src="' . esc_attr($img_src) . '" alt="' . esc_attr($alt) . '" title="' . esc_attr($title).'" '.$hwstring.'class="'.$class.'" />';

から

$html = '<img src="' . esc_attr($img_src) . '" alt="' . esc_attr($title) . '" title="' . esc_attr($alt).'" '.$hwstring.'class="'.$class.'" />';

にします。こうすることで、必須項目であるタイトル欄に入力したテキストがalt属性に、代替テキスト欄に入力したテキストがtitle属性に収まってくれます。入力欄が入れ替わっただけなので、別々のテキストを設定することも可能。うーん、理想的だっ。

この手術を施しても、過去の記事のalt属性とtitle属性は入れ替わりません。あくまでもアップロードされた画像等のファイルを操作したときに効果を発揮します。

これで睡眠時間を5分増やすことができそうです。

古い記事・新しい記事

古い記事 [2010年06月28日]
新しい記事 [2011年02月12日]

コメントはありません

ごめんなさい、コメントフォームは閉鎖しています。

Translate »