WordPress のリンクを新しいウィンドウで開くには?
この問題には、最初のころ私もずっと悩まされていました。後でネットで調べてみると、方法はいろいろあり、大まかには次のようなものがあります。
先に一点説明しておく必要があります。以下の方法の中には、wp-admin や wp-includes ディレクトリ配下のファイルなど、WordPress のコアファイルを変更するものがあります。その場では有効ですが、WordPress をアップグレードすると上書きされやすくなります。より安全なのは、テーマ、子テーマ、プラグイン、または WordPress エディター標準の「新しいタブで開く」オプションを優先して使う方法です。
方法 1:<base> でページ内リンクをデフォルトで新しいウィンドウに開く
テーマの header.php ファイルで、<head> タグ内に次のコードを追加するだけです。
<base target="_blank">
この方法はシンプルで効果的です。このブログでも当時はこの方法を採用していました。ただし、ページ内のほぼすべての相対リンクのデフォルトの開き方に影響します。そのため、サイト内にログイン、フォーム、ページ送り、アンカーリンクへのジャンプなどの操作がある場合は、想定どおりに動くか自分でテストする必要があります。
方法 2:管理画面の「サイトを表示」リンクを新しいウィンドウで開く
wp-admin フォルダーを開き、admin-header.php ファイルを探します。次のようなコードを見つけます。
<a href="<?php echo trailingslashit( get_bloginfo( 'url' ) ); ?>" title="<?php esc_attr_e( 'Visit Site' ); ?>">
最後の山括弧 > の前に target="_blank" を挿入し、ファイルを保存します。変更後は次のようになります。
<a href="<?php echo trailingslashit( get_bloginfo( 'url' ) ); ?>" title="<?php esc_attr_e( 'Visit Site' ); ?>" target="_blank">
これで、管理画面からフロント側のトップページを開くリンクをクリックしたとき、新しいウィンドウで開くようになります。
方法 3:コメント内のリンクを新しいウィンドウで開く
wp-includes フォルダーを開き、comment-template.php ファイルを探します。次のようなコードを見つけます。
$return = "<a href='$url' rel='external nofollow' class='url'>$author</a>";
<a> タグに target="_blank" を追加します。
$return = "<a href='$url' target='_blank' rel='external nofollow' class='url'>$author</a>";
これで、訪問者のニックネームが指すリンクが新しいウィンドウで開くようになります。
コアファイルを変更したくない場合は、テーマの functions.php でフィルターを使ってコメント投稿者リンクを処理することもできます。具体的なコードはテーマと WordPress のバージョンに応じて確認する必要があるため、変更前にバックアップしておくのがよいでしょう。
方法 4:リンク集を新しいウィンドウで開く
wp-admin/includes/meta-boxes.php ファイルを開き、次のようなコードを見つけます。
<input id="link_target_blank" type="radio" name="link_target" value="_blank" <?php echo
( isset( $link->link_target ) && ( $link->link_target == '_blank' ) ? 'checked="checked"' : '' ); ?> />
上記のコードを次のように変更します。
<input id="link_target_blank" type="radio" name="link_target" value="_blank" checked="checked" />
これで、リンク集のリンクをデフォルトで新しいウィンドウで開くように選択できます。または、リンク集を追加するときに、下部の関連オプションで直接「新しいウィンドウでリンクを開く」を選択してもかまいません。
よりおすすめの方法
特定の記事内の外部リンクだけを新しいウィンドウで開きたい場合、最も簡単なのはエディターでリンクを選択し、「新しいタブで開く」にチェックを入れる方法です。HTML を手書きする場合は、次のように書けます。
<a href="https://example.com" target="_blank" rel="noopener noreferrer">サンプルリンク</a>
それぞれの意味は次のとおりです。
target="_blank"は、新しいウィンドウまたは新しいタブで開くことを表します。rel="noopener noreferrer"は、新しく開いたページが元のページへ逆方向にアクセスするリスクを減らすために使います。
サイト全体の外部リンクを新しいウィンドウで開きたい場合は、WordPress のコアファイルを直接変更するのではなく、テーマまたはプラグインで一括処理することをおすすめします。そうすれば、WordPress をアップグレードしたときに変更内容が失われにくくなります。
