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

2010年07月20日 正午の月齢:8.7  月名:九日月  潮汐:小潮 月齢:8.7[九日月] 潮汐:小潮 | 7年前 | 旧暦:2010年06月09日 | 友引
WordPress | コメントはありません

この記事を読むのに必要な時間の目安: 4分ぐらい

この記事は7年以上前のものです。情報が古い場合があります。

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分増やすことができそうです。

関係あるかも知れない記事

前の記事・次の記事

前の記事
<<
次の記事
>>

この記事のトラックバックURL

http://susu.cc/2010/07/wordpress-alt_title-exchange.html/trackback

コメントはありません

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