WordPressで記事のリンクに外部サイトなど任意のURLやリダイレクトを設定する4つの方法

WordPressで記事のURLに外部リンクを設定する4つの方法

WordPressで記事のリンクを任意のURLに変更したり、リダイレクトを設定する方法を紹介します。もちろん、外部サイトのURLだけでなく、サイト内のページのURLへリンク、リダイレクトさせることも可能です。

記事のリンク先自体を差し替える方法と、記事のリンク先は元のままにして指定したURLにリダイレクトする方法があります。

1. プラグイン「Page Links To」を使って指定URLに直接リンクする

プラグイン「Page Links To」を使うと、記事のリンクを指定したURLに変更することができます。

Page Links To

プラグインをインストール、有効化すると、記事編集画面の下部にリンク先のページの設定フィールドが表示されます。カスタムURLにURLを入力すると、外部サイトなど、指定したURLにリンクすることができます。

Page Links Toの設定

2. functions.phpを使って、記事のリンク先をカスタムフィールドで指定したURLに変更する

リダイレクトURLを記入するカスタムフィールドを用意しておき、記事のリンク先をカスタムフィールドで指定したURLに変更します。

カスタムフィールドの作成は、プラグイン「Custom Field Template」を使うと簡単です。

Custom Field Template

プラグインをインストール、有効化したら、設定 > カスタムフィールドテンプレート に進みます。

 カスタムフィールドテンプレート

カスタムフィールドテンプレートに下記のように入力して、リンクURLを入力するためのフィールドを作成します。

[link_url]
type = text
size = 35
label = リンクURL

カスタムフィールドの設定

入力したら、「オプションを更新する」ボタンを押して、設定を保存します。

設定を保存する

記事作成ページの下の法に「カスタムフィールドテンプレート」の入力欄が表示されます。

リンクURLに記事をリンクさせたいURLを入力します。

リンクURL

カスタムフィールドの設定ができたら、functions.phpに下記のコードを追記します。

function wpdev_permalink_links( $link, $post ) {
    $meta = get_post_meta( $post->ID, 'link_url', TRUE );
    $url = esc_url( filter_var( $meta, FILTER_VALIDATE_URL ) );
    return $url ? $url : $link;
}
add_filter( 'post_link', 'wpdev_permalink_links', 10, 2 );

参考: ACF – External Permalink Field | WPDevelopers wpdevelopers | We Are WordPress Pros

カスタムフィールド[link_url]に入力されたURLを取得して、[link_url]があれば、記事のリンク先を指定したURLに差し替えます。

3. プラグイン「SEO Redirection Plugin」を使って、任意のURLにリダイレクトする

プラグイン「SEO Redirection Plugin」を使うと、記事を任意のURLにリダイレクトすることができます。

SEO Redirection Plugin

プラグインをインストール、有効化すると、記事の編集画下部にリダイレクトの設定欄が表示されます。

リダイレクトの設定方法

「Redirect」のチェックボックスにチェックをつけて、「Redirect to」にリダイレクト先のURLを入力します。

404エラーページのリダイレクトなども設定できる有料版もありますが、今回は特に購入の必要はありません。同じような機能が欲しい場合も、他の無料プラグインで代用できます。

4. functions.phpを使って、記事をカスタムフィールドで設定した任意のURLにリダイレクトする

以前の記事で紹介した方法です。

カスタムフィールドにリダイレクト用のURLを設定しておき、functions.phpで記事をカスタムフィールドで設定したURLにリダイレクトするようにします。

カスタムフィールドの作成は、プラグイン「Custom Field Template」を使うと簡単です。

Custom Field Template

プラグインをインストール、有効化したら、設定 > カスタムフィールドテンプレート に進みます。

 カスタムフィールドテンプレート

カスタムフィールドテンプレートに下記のように入力して、リンクURLを入力するためのフィールドを作成します。

[redirect_url]
type = text
size = 35
label = リダイレクトURL

入力したら、「オプションを更新する」ボタンを押して、設定を保存します。

設定を保存する

記事の編集画面に、カスタムフィールドの入力欄が表示されるので、「redirect_url」に、リダイレクト先のURLを指定します。

カスタムフィールドテンプレート

functions.phpに下記のコードを追加します。

function page_redirect(){
  global $post;
  $output = "";
  $series = get_post_meta($post->ID, 'redirect', true);
  if(is_single()){
  	if($series) {
    	wp_redirect( $series , 301);
    	exit;
  	}
  }
}
add_action( 'get_header', 'page_redirect' );

記事を表示しようとすると、カスタムフィールドで指定したリダイレクトURLに301リダイレクトをします。

5. プラグイン「Redirection」を使って、リダイレクトルールをまとめて設定する

ここまでは、リダイレクト先URLを記事ごとに設定する方法を紹介しましたが、プラグイン「Redirection」を使うとWordPressのリダイレクトルールをまとめて管理することができます。

Redirection

プラグインをインストール、有効化したら、ツール > Redirection から設定画面に進みます。

Redirectionの使い方

「転送ルール」画面から複数のリダイレクトルールをまとめて管理することができます。

転送ルール

正規表現も使えるので、.htaccessを使用せずにWordPress全体のリダイレクトを細かく管理することができます。複雑なりダイレクトルールを設定したい場合におすすめのプラグインです。