ver3.5以降のWordPressでは何も考えずに記事内に画像を挿入すると自動的にuploadsフォルダへのリンクが張られる仕様になっています。

Lightbox系のプラグインを使うのなら画像フォルダへのリンクはあった方がいいのかもしれませんが、そうでなければそんなに必要のない機能です。

場合によっては検索エンジン的に好ましくない方向へ働いてしまう可能性もあります。

chain
chain / sfu.marcin

WordPressのオプションを変更して画像挿入時にリンクURLが空白になるようにする

自動でリンクが張られるといっても、要するに画像挿入時にリンクURLが初期値で入力されているという話。

だから不必要であればこの「リンクURL」欄を空白にすればいいだけの事です。ですが毎回これを手作業で外すのはかなり面倒。

そこで、画像を挿入してもこの「リンクURL」欄が常に空白になるように予めWordPressの初期設定を変更しておきます。

WordPressのオプションを表示

この初期設定を変更するにはWordPressの隠しオプション画面を表示させなければなりません。

このオプション画面へたどり着くには、サイトURL/wp-adminの後ろにoptions.phpを付け加えます。
つまり http://ドメイン名/wp-admin/options.php へアクセスするわけです。(WordPressへログインの必要あり)

たどり着いた「すべての設定」の画面内で画像へのリンクを設定している箇所を探します。

image_default_link_typeという項目が画像へのリンクを設定しています。
そこが空欄になっているのでnoneと入力(WordPress3.5以降)。

あとは一番下の「変更を保存」をクリック。

これで以降は自動で画像にリンクを張られる事はなくなります。

今まで投稿した記事から画像へのリンクを取り除く

これから書く記事に関しては上記の方法で問題ありませんが、過去の記事の画像にはリンクが張られているままです。

最初は正規表現とか使って置換をするくらいしか方法がないのかな?と思っていましたが、検索してみるとこんなやり方があるようです。

さっそく試してみます。

使用しているテーマファイルのfunctions.phpファイルに以下を追記。

//画像へのリンクを削除
add_filter( 'the_content', 'attachment_image_link_remove_filter' );
 function attachment_image_link_remove_filter( $content ) { 
$content = 
preg_replace(
 array('{<a(.*?)(wp-att|wp-content\/uploads)[^>]*><img}', 
'{ wp-image-[0-9]*" /></a>}'), 
array('<img','" />'), 
$content
 );
 return $content; 
}

その後、記事の画像部分のソースを見てみるとちゃんとimgタグのみに変更されているのがわかります。

ただ同じ箇所の編集画面を表示させるとリンクは残っていますので、おそらく表示させる段階でタグを取り除くという動きをしているのでしょう。

元の編集画面にリンクタグが残っているという事は、さきほどのfunctions.phpの記述を削除すればリンクは復活するのではないかと思います。

ちなみに上記の記述ではwp-content/uploadsフォルダへのリンクのみ削除されます。それ以外の場所へのリンクを外したいのであれば、上記ソースの改良が必要です。

自分の場合はuploadsフォルダ以外のリンクは残しておきたかったので、このまま使用する事にしました。