WordPressで外部リンクを自動的に別タブ表示にする方法|nofollow・noopener対応
この記事では、WordPressで外部リンクを自動的に別タブ表示にする方法を解説します。あわせて、nofollowやnoopenerへの対応についても紹介します。外部サイトへのリンク設定を効率よく整えたい方や、SEOやセキュリティ面も意識したい方に役立つ内容です。
1 functions.php に追加するコード
以下のコードを子テーマの functions.php に追加してください。
//------------------------------------------------------------------
// 記事内リンクを自動で target="_blank" rel="nofollow noopener" にする
//------------------------------------------------------------------
function auto_external_link($content) {
$pattern = '/<a(.*?)href=["\'](http[s]?:\/\/(?!' . $_SERVER['HTTP_HOST'] . ')[^"\']+)["\'](.*?)>/i';
$replacement = '<a$1href="$2"$4 target="_blank" rel="nofollow noopener">';
$content = preg_replace($pattern, $replacement, $content);
return $content;
}
add_filter('the_content', 'auto_external_link');
上記のコードは、投稿本文内のリンクのうち、自サイト以外の外部リンクに対して自動で属性を追加します。
2 4. 注意点
- 自サイト内リンクは変更されません。
- 記事本文以外(ウィジェットやカスタムHTMLなど)は対象外です。
3 5. まとめ
この方法を使えば、記事内の外部リンクを自動で新しいタブで開き、安全性とSEOの両方に配慮した設定が可能です。テーマに依存せず使えるので便利です。


