2014-07-02

WordPressの画像挿入処理を変更する

WordPressで画像を挿入しようとするとこんな感じになりますね。

<a href="http://note.crohaco.net/wp-content/uploads/2014/07/wp-light-hi-bg.png"> <img class="alignnone size-full wp-image-208" src="http://note.crohaco.net/wp-content/uploads/2014/07/wp-light-hi-bg.png" alt="wp-light-hi-bg" width="176" height="145" /> </a>

この仕様の欠点

aタグでコーティングされる点

当サイトでは画像へのリンクは必要ありません。 aタグをストリップします。

画像ソースにホスト(ドメイン)が含まれる点

環境が変わると画像が表示されなくなる恐れがあります。

今回はパス表記に変更します。

修正方法

以下のコードを functions.php に追記します。

//aタグをストリップするコード function strip_atag_from_image($html, $id, $caption, $title, $align, $url, $size) { return strip_tags($html, '<img>'); } add_filter('image_send_to_editor', 'strip_atag_from_image', 10, 7);
//画像ソースをパスのみに変更するコード function delete_host_from_attachment_url($url) { $regex = '/^https?:\/\/[^\/\s]+(.*)$/'; if (preg_match( $regex, $url, $m) ) { $url = $m[1]; } return $url; } add_filter('wp_get_attachment_url', 'delete_host_from_attachment_url');

余分なものが消えました。

<img class="alignnone size-full wp-image-208" src="/wp-content/uploads/2014/07/wp-light-hi-bg.png" alt="wp-light-hi-bg" width="176" height="145" />

参考

Page Not Foundhttp://rakuishi.com/archives/6094 WordPress › エラーhttp://www.warna.info/archives/20/