WordPress – 画像挿入時〈a〉タグにrel属性とtitle属性も自動的に挿入する

ども。鉄王です。

別腹で運営しているWordPressのサイトでは、サムネイル画像の拡大表示にShadowboxをブリバリに使っております。

で、Shadowboxを使うときは、サムネイル画像のタグに

  • rel="shadowbox"
  • title="キャプションとなる文字列"

を入れることが鉄則(?)なのですが、画像アップ時の「タイトル欄」にキャプションを入れても、WordPressデフォルトのままではこれがスパッと決まってくれないのですね。タグにはtitle属性として自動的に挿入されるのですけど。

で、手作業でタグからタグにコピペするのにも疲れたのでソースをいじりました。以下、WP2.6.3での事例なので、近日正式版が公開されるであろう2.7になると状況が変わるかもしれません。ご利用は計画的に。

/wp-admin/includes/media.phpの61行目。
《修正前》
$html = '
$html";
《修正後》
$html = '$html";

ひとまず、これでメンドがくさい作業から解放されました。

[2008.12.25追記]
WP2.7になって、ソースが若干変わったようです。2.6.3のときは61行目だったのが、2.7では111行目に変わっていました。
また、画像挿入時に「リンク URL」を『画像のURL』で明示しないとうまくいきません(アップローダの仕様が変わったのかな?)

[2009.6.11追記]
2.8になってまたソースが若干変わりました。2.7では111行目だったのが、2.8になり110行目となりました。
また、関数名も clean_url($url) から esc_url($url) となっています。

[2009.10.23追記]
アップデートのたびにコアファイルをいじるのもうっとうしいので野良プラグインを作ってみました。画像をエディタに挿入する際、自動的に rel=”shadowbox[YYYYMMDD]” が追記されます。Codexをご参考にプラグインのPHPファイルを起こし、以下の内容を記述してみてください。WP2.8.5で検証しました。

1
2
3
4
5
6
7
8
add_filter('image_send_to_editor', 'my_add_rel_attribution');
 
function my_add_rel_attribution() {
	$args    = func_get_args();
	$date    = date("Ymd");
	$args[0] = preg_replace ( "/(<a )(href=\".+?\".+?alt=\")(.+?)(\")/", "$1rel=\"shadowbox[$date]\" title=\"$3\" $2$3$4", $args[0] );
	return $args[0];
}

[2009.12.28追記]
WP2.9に対応したコードです。以前のコードではalt属性値をタグのtitle属性に当てはめていましたが、2.9対応のコードではタグのtitle属性値をタグにも当てはめています。

1
2
3
4
5
6
7
8
add_filter('image_send_to_editor', 'my_add_rel_attribution');
 
function my_add_rel_attribution() {
	$args    = func_get_args();
	$date    = date("Ymd");
	$args[0] = preg_replace ( "/(<a )(href=\".+?\".+?title=\")(.+?)(\")/", "$1rel=\"shadowbox[$date]\" title=\"$3\" $2$3$4", $args[0] );
	return $args[0];
}

WordPress – 画像挿入時〈a〉タグにrel属性とtitle属性も自動的に挿入する” への3件のコメント

  1. ピンバック: LIghtBoxって? – 石本 Web

  2. ピンバック: shadowboxの編集を簡単にするプラグイン – 石本 Web

  3. ピンバック: wordpressで画像をポップアップする – cogito

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> <pre lang="" line="" escaped="" highlight="">