smbutton-blue_no_shadow

WordPressで挿入する画像のsrcを相対リンクにする【発展版】

一番最初に書いた記事「WordPressで挿入する画像のsrcを相対リンクにする」では、環境移行がしやすいよう、単に画像のドメイン部分をカットしていました。
ただし、これには1点問題があってRSSリーダーなどで表示する際に、ドメインが異なるため、画像が表示できていませんでした。

この問題に対応するため、以前のコードを元にドメイン部分をショートコード化し、表示する際に、運用中のドメインを追加するように改正してみようと思います。

ドメインを表示するためのショートコードは [domain] として、相対リンクのurlに付け足します。

CODE 1

function delete_host_from_attachment_url( $url ) {
    $regex = '/^http(s)?:\/\/[^\/\s]+(.*)$/';
    if ( preg_match( $regex, $url, $m ) ) {
        $url = '[domain]' . $m[2];
    }
    return $url;
}
add_filter( 'wp_get_attachment_url', 'delete_host_from_attachment_url' );

ドメインを出力する [domain] ショートコードは、一般設定のサイトのアドレス (URL)を元にして、ドメイン部分のみを抜き出して出力するようにします。

code 2

この記事は、jim912によって書かれたものです。
引用を行う場合は、著作権法に定める範囲にて、引用元であるSimple Colorsの出展元表示とhttp://www.warna.info/archives/1789/へのリンクを必ず行って下さい。

function domain_shortcode() {
	if ( preg_match( '|^https?://[^/]+|', get_option( 'home' ), $m ) ) {
		$domain = $m[0];
	} else {
		$domain = '';
	}
	return $domain;
}
add_shortcode( 'domain', 'domain_shortcode' );

これらを合わせた CODE 3 をテーマの functions.php に記述すれば、ドメインを変更した場合でも自動的に画像のパスを変更し、RSSリーダーなどでも問題なく表示することができるようになります。

CODE 3

function delete_host_from_attachment_url( $url ) {
    $regex = '/^http(s)?:\/\/[^\/\s]+(.*)$/';
    if ( preg_match( $regex, $url, $m ) ) {
        $url = '[domain]' . $m[2];
    }
    return $url;
}
add_filter( 'wp_get_attachment_url', 'delete_host_from_attachment_url' );

function domain_shortcode() {
	if ( preg_match( '|^https?://[^/]+|', get_option( 'home' ), $m ) ) {
		$domain = $m[0];
	} else {
		$domain = '';
	}
	return $domain;
}
add_shortcode( 'domain', 'domain_shortcode' );

投稿画面でのソースサンプル

<a href="[domain]/wp-content/uploads/2011/07/IMG_1170.jpg"><img src="[domain]/wp-content/uploads/2011/07/IMG_1170-300x200.jpg" alt="" title="IMG_1170" width="300" height="200" class="alignnone size-medium wp-image-114" /></a>

出力ソースサンプル

<a href="http://www.example.com/wp-content/uploads/2011/07/IMG_1170.jpg"><img src="http://www.example.com/wp-content/uploads/2011/07/IMG_1170-300x200.jpg" alt="" title="IMG_1170" width="300" height="200" class="alignnone size-medium wp-image-114" /></a>
カテゴリー: WordPressの小技   パーマリンク

WordPressで挿入する画像のsrcを相対リンクにする【発展版】 への18件のコメント

  1. jim0912 より:

    ぶろぐった:WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/omM9i2fs @wordpress_fan #WordPressJP #ブログ

  2. evian より:

    これはエロい!RT @jim0912: ぶろぐった:WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/SHacqQ4X @wordpress_fan #WordPressJP #ブログ

  3. wordpress_fan より:

    ぶろぐった:WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/omM9i2fs @wordpress_fan #WordPressJP #ブログ

  4. infoeproduction より:

    ぶろぐった:WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/omM9i2fs @wordpress_fan #WordPressJP #ブログ

  5. webbingstudio より:

    おおお。RSSのこと考えてなかったなー WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/TqFXxdAg #wordpress

  6. hr07jp より:

    WordPressで挿入する画像のsrcを相対リンクにする【発展版】

  7. tubuyakikogorou より:

    ぶろぐった:WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/omM9i2fs @wordpress_fan #WordPressJP #ブログ

  8. shinichin より:

    ぶろぐった:WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/omM9i2fs @wordpress_fan #WordPressJP #ブログ

  9. ucc_tina_feed より:

    WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/cSB7xYUQ

  10. infoeproduction より:

    WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/cSB7xYUQ

  11. jim0912 より:

    【お昼の再掲】 WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/omM9i2fs

  12. actywav より:

    【お昼の再掲】 WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/omM9i2fs

  13. webdesignstatio より:

    WordPressで挿入する画像のsrcを相対リンクにする【発展版】 | Simple Colors 一番最初に書いた記事「WordPressで挿入する画像のsrcを相対リンクにする」では、環境移行がしやすいよう、単に画像のドメイ…http://t.co/moYqc8f4

  14. zerochacool より:

    WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/wYOVt5sy

  15. infoeproduction より:

    WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/wYOVt5sy

  16. zerochacool より:

    RSSリーダーなどで表示する際に、ドメインが異なるため、画像が表示できていませんでした。この問題に対応するため、以前のコードを元にドメイン部分をショートコード化し、表示する際に、運用中のドメインを追加するように改正してみようと思います。

  17. upaostar_ より:

    “WordPressで挿入する画像のsrcを相対リンクにする【発展版】 | Simple Colors” http://t.co/6gCyMVdr

  18. o_bridge_o より:

    WP:便利なショートコード!
    WordPressで挿入する画像のsrcを相対リンクにする【発展版】 http://t.co/JjqlZ6GG

コメントを残す

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

*

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