WordPress の外部リンクに nofollow・別タブ・アイコンをまとめて付ける:プラグイン External Links と、プラグインなしのコード

広告WordPress・PHP を学べる本

Amazonのアソシエイトとして、WordPress functions.phpは適格販売により収入を得ています。

概要説明

WordPress の記事の外部リンクに、別タブで開く・nofollow・noopener などをまとめて付けるプラグイン External Links の設定と、プラグインを使わずに functions.php で付けるコード。本文のデータは変えずに、表示のときに変わる。作業環境で確かめた結果つき。

記事の中の外部リンク(ほかのサイトへのリンク)に、別タブで開く・nofollow などを、1 つずつ書き直さずにまとめて付けられるプラグインです。

External Links – nofollow, noopener & new window – WordPress プラグイン

無料・有効なサイト 9 万以上で、今も更新が続いています(2026 年 10 月に確かめた時点で 2.66・WordPress 7.1.3 まで確認済み)。

できること 中身
別タブで開く 外部リンクに target=”_blank” を付ける
rel を付ける nofollow・noopener・noreferrer・external・sponsored・ugc から選ぶ
アイコン 外部リンクの横に、画像やアイコンを出す
付ける場所 本文・コメント・ウィジェットなど、ページ全体から選べる
外すもの 決まった URL・class・サブドメインを、内部のリンクとして扱える

記事の本文のデータは書き換えず、表示のときに付けます。プラグインを止めれば、元の表示に戻ります。

外部リンクの設定の画面

WordPress の外部リンクに nofollow・別タブ・アイコンをまとめて付ける:プラグイン External Links と、プラグインなしのコード

このサイトでは、外部リンクを「別タブで開く・nofollow・noopener・noreferrer・external」にしています。

項目 このサイトの設定
Open external links(開き方) 新しいタブ(_blank)
Set follow or nofollow nofollow
Also add to rel attribute noopener・noreferrer・external
付ける場所(Exceptions) ページ全体・本文・コメント・ウィジェット

作業環境で、この記事の公開ページのリンクを見ると、次のようになっていました。

<a href="https://ja.wordpress.org/plugins/wp-external-links/" target="_blank" rel="nofollow external noopener noreferrer">External Links – WordPress プラグイン</a>

nofollow は、Google には「たどらなくてよい」という目安として伝わります。自分が勧めたいサイトへのリンクまで全部に付けるかは、サイトの方針で決めます。広告のリンクは nofollow より sponsored が向いています。

プラグインを使わずに、コードで付ける

本文の外部リンクに別タブと rel を付けるだけなら、テーマの functions.php(子テーマがあれば子テーマ)に次のコードを足しても同じことができます。

functions.php
/**
 * 記事の本文の外部リンクに、別タブ(target="_blank")と rel を付ける(プラグインを使わない場合)
 */
add_filter( 'the_content', function ( $content ) {
	if ( false === strpos( $content, '<a ' ) ) {
		return $content;
	}
	$home = wp_parse_url( home_url(), PHP_URL_HOST );
	$tags = new WP_HTML_Tag_Processor( $content );
	while ( $tags->next_tag( 'a' ) ) {
		$href = (string) $tags->get_attribute( 'href' );
		$host = wp_parse_url( $href, PHP_URL_HOST );
		// http(s) で始まり、自分のサイトでないリンクだけ
		if ( ! $host || $host === $home || ! preg_match( '#^https?://#i', $href ) ) {
			continue;
		}
		$rel = preg_split( '/\s+/', trim( (string) $tags->get_attribute( 'rel' ) ), -1, PREG_SPLIT_NO_EMPTY );
		$rel = array_unique( array_merge( $rel, array( 'nofollow', 'noopener', 'noreferrer' ) ) );
		$tags->set_attribute( 'rel', implode( ' ', $rel ) );
		$tags->set_attribute( 'target', '_blank' );
	}
	return $tags->get_updated_html();
}, 20 );
書き方 役目
WP_HTML_Tag_Processor 本文の a タグを 1 つずつ見て、属性を足す(WordPress 6.2 から)。正規表現で書きかえるより、壊れにくい
自分のサイトの host と比べる 自分のサイトへのリンク・/ で始まるリンク・mailto は変えない
rel は今の値に足す もとの sponsored などを消さない

このサイトの作業環境(WordPress 7.1.3・PHP 8.3)で、試しの本文を通して確かめました。

試した本文 結果
外部のリンク target=”_blank” と rel=”nofollow noopener noreferrer” が付いた
rel=”sponsored” がある外部のリンク rel=”sponsored nofollow noopener noreferrer”(もとの値が残る)
自分のサイトのリンク・/ で始まるリンク そのまま
mailto のリンク・リンクのない文 そのまま

アイコンを出したり、コメントやウィジェットのリンクまで変えたりするなら、プラグインのほうが手軽です。

リンクの横にアイコンを出す

WordPress の外部リンクに nofollow・別タブ・アイコンをまとめて付ける:プラグイン External Links と、プラグインなしのコード

アイコンが出た外部リンク

WordPress の外部リンクに nofollow・別タブ・アイコンをまとめて付ける:プラグイン External Links と、プラグインなしのコード

関連機能

  1. Yoast SEO と All in One SEO の無料版を比較:できること・できないことのまとめ

  2. WordPress の記事の何番目の見出しの前に広告や文を差し込む:the_content で 1 つ目・2 つ目・最後の h3 を数える

  3. WordPress でプラグインなしにカスタム投稿を足す方法:register_post_type と single・archive のテンプレート(WordPress 7.1 で確かめた)

サイドバー

よく使うカスタマイズ

最近の記事

Profile

PAGE TOP