スポンサーリンク
今回は、投稿本文中のリンクタグ(aタグ)にある「target=_blank」要素を、「外部サイトへのリンクには付ける」かつ「内部ページへのリンクには付けない」を強制的に適用する方法をメモします。
目次
スポンサーリンク
外部サイトへのリンクに『だけ』 target=_blank を付加したい!
外部サイトへのリンクに「target=_blank」を付けてくれるプラグインは複数あります。ただ、これは「target=_blank」を一切使っていない人向けであり、すでに中途半端に「target=_blank」を付けていたりすると、「外部サイト『のみ』target=_blankを付ける」という点について一貫性がなくなってしまいます。
そこで、今回は、「functions.phpでtarget=_blankをすべて削除」して、「プラグインで、外部リンクにのみtarget=_blankを追加する」という方針でやってみました。その結果、現状中途半端に「target=_blank」が混ざっていてもうまくいくようになりました。
1.「target="_blank"」をすべて削除する
WordPressの「外観>テーマ編集」から、「functions.php」を開いて、次のPHPのコードを追加します。
// target="_blank" の削除 function remove_target_blank($content) { return str_replace(' target ="_blank"', '', $content); } add_filter('the_content', 'remove_target_blank');
これで、「 target ="_blank"」という文字列を一括削除してしまうわけです(※こういう本文中でも削除されてしまうので、今回はわざとイコール直前に半角スペースを挿入しています)。
2.「target="_blank"」を外部サイトへのリンクにのみ追加する
今回使用したプラグインは、「WP External Links」です。「プラグイン>新規追加」から検索すれば、簡単にインストールできます。
「Open external links in...」を「New window or tab」と設定すると、外部リンクに対して「target="_blank"」が、設定されます。
また今回は、投稿本文についてのみ有効になって欲しかったので、「Apply plugin settings on...」で「Post contents」を選択しました。ついでに外部サイトへのリンクにのみアイコンを表示したかったので、「Style Settings>Set icon for external link」でアイコンを選択しました。ちなみに、画像付きのリンクにアイコンを表示させないために「No icon for external links with images」にもチェックを入れています。
完成
若干謎な部分もあるのですが、ひとまずうまくtarget="_blank"が追加・削除されていることを確認できたので、現在このブログでは、この方法でtarget="_blank"をコントロールしています。中途半端に手作業でtarget="_blank"を設定してしまった、というひとは是非お試しあれ。
参考
プラグインを使ったExternal Linkへのtarget="_blank"付加のほうについては、参考サイトが複数あります。
スポンサーリンク
スポンサーリンク