外部リンクを自動でtarget="_blank" rel="nofollow noopener"にする方法
WordPressで記事内の外部リンクを自動的に新しいタブで開き、さらにSEOやセキュリティの観点から rel="nofollow noopener"
を追加する方法を解説します。
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');
上記のコードは、投稿本文内のリンクのうち、自サイト以外の外部リンクに対して自動で属性を追加します。
4. 注意点
- 自サイト内リンクは変更されません。
- 記事本文以外(ウィジェットやカスタムHTMLなど)は対象外です。
5. まとめ
この方法を使えば、記事内の外部リンクを自動で新しいタブで開き、安全性とSEOの両方に配慮した設定が可能です。テーマに依存せず使えるので便利です。