WordPressでは、セキュリティのため外部リンクに「rel=”noopener noreferrer”」が自動的に追加されます。
これをカスタムフィルターを使用して解除する方法を紹介します。

「rel=”noopener noreferrer”」属性の自動付与を解除する

次の関数をfunctions.phpに追加することで、自動的に付与される「rel=”noopener noreferrer”」を削除できます。

function remove_noreferrer_noopener($content) {
	$content = str_replace(
		['rel="noreferrer"', 'rel="noopener"', 'rel="noreferrer noopener"', 'rel="noopener noreferrer"'],
		'',
		$content
	);
	return $content;
}
add_filter('the_content', 'remove_noreferrer_noopener');
add_filter('wp_nav_menu', 'remove_noreferrer_noopener');
add_filter('widget_text', 'remove_noreferrer_noopener');

その他のオプション

以下のadd_filterを追加することで、WordPress内の他のコンテンツ部分からも「rel=”noopener noreferrer”」を除去できます。

add_filter('widget_custom_html_conten', 'remove_noreferrer_noopener'); // 投稿の抜粋
add_filter('post_thumbnail_html', 'remove_noreferrer_noopener'); // カスタムHTMLウィジェット
add_filter('comment_text', 'remove_noreferrer_noopener'); // コメント内リンク

「rel=”noopener noreferrer”」を使用したくないケース

「rel=”noopener noreferrer”」を使用したくない、必要としないケースは、以下のような場面です。

  • 信頼できるサイト同士のリンク
  • リンク先にリファラー情報が必要な場合(SEOやアクセス解析において、リンク元情報が重要な場合)

サイト全体でリンク属性管理が必要な場合や、セキュリティ要件に応じた柔軟なカスタマイズを行う際に役立ちます。
ぜひお試しください。