WordPressでメディア追加するときのHTMLをまるっと変更できるget_image_tagフィルター

公開日 :

カテゴリー :

前回、WordPressでメディアを追加したときに使われるget_image_tag_classフィルターについて紹介しました。get_image_tag_classフィルターは、メディアのimgタグのクラス属性を変更できるフィルターでしたね。imgタグのクラス属性だけではなくimgタグそのものを変更したい場合には、get_image_tagフィルターというものを使います。今回はメディア関連のフィルターで画像のimgタグを変更できるget_image_tagフィルターについて紹介します。

get_image_tagフィルターは、WordPressで用意されているメディアのフィルターフックで同名のget_image_tag()関数内で呼ばれます。get_image_tag()で生成されたimgタグをget_image_tagフィルターで加工したりすることができます。get_image_tagフィルターの仕様は、以下の通りです。

get_image_tagフィルターの仕様

引数名 説明
$html string imgタグ
$id int 画像の添付ID
$alt string 画像の説明文(alt属性)
$title string 画像の説明タイトル(title属性)
$align string 画像の配置
$size string 画像のサイズ

$htmlは、get_image_tag()で生成されたimgタグです。

$idは、挿入する画像の添付ファイルIDになります。添付ファイルIDは、wp_postsテーブルのIDです。

$altは、画像の説明文でimgタグのalt属性に使われます。

$titleは、画像のタイトルでimgタグのtitle属性に使われます。

$alignは、画像を追加するときに「配置」で挿入位置を指定できますが、指定した配置の挿入位置のクラス名が入っています。

$sizeは、$alignと同じように画像を追加するときの「サイズ」画像をサイズを指定できますが、指定した画像サイズのキーが入っています。画像にもよりますが、WordPressの標準だと$sizeは、thmubnailやmediumやlargeといったものが入っています。

画像の挿入

get_image_tagフィルターの使いドコロ

get_image_tagフィルターは、get_image_tag_classフィルターでは、カバー出来ないところまでカバーするところにあります。get_image_tag_classフィルターでは、imgタグのクラス属性しか変更することが出来ませんが、get_image_tagフィルターではimgタグそのものを加工するので属性の追加・削除やimgタグそのものを生成しなおすといったことも出来ます。

サンプルとしてget_image_tagフィルターを使ってget_image_tag()で生成されたimgタグのwidth属性・height属性を削除するフィルターフックを作ってみました。

まとめ

get_image_tagフィルターは、get_image_tag()で生成されたimgタグを加工するのに使うフィルターフックです。get_image_tag()は、引数の指定が多くてWordPressのテーマ開発においてほとんどありません。

実際にget_image_tag()が使われるのが記事の編集でメディアを追加したときです。「メディアの追加」で追加したimgタグはget_image_tag()で生成したものです。記事の編集でメディアの追加で追加したimgタグを毎回編集していた場合は、get_image_tagフィルターを使ってフィルターフックを作っておけば、記事編集で無駄な作業が減るのでオススメです。

ピンバック

コメント

名前とEメールアドレスが必須です。

以下のHTMLタグが使用できます。 <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>