WordPressで記事のリンクを任意のURLに変更したり、リダイレクトを設定する方法を紹介します。もちろん、外部サイトのURLだけでなく、サイト内のページのURLへリンク、リダイレクトさせることも可能です。
記事のリンク先自体を差し替える方法と、記事のリンク先は元のままにして指定したURLにリダイレクトする方法があります。
1. プラグイン「Page Links To」を使って指定URLに直接リンクする
プラグイン「Page Links To」を使うと、記事のリンクを指定したURLに変更することができます。
プラグインをインストール、有効化すると、記事編集画面の下部にリンク先のページの設定フィールドが表示されます。カスタムURLにURLを入力すると、外部サイトなど、指定したURLにリンクすることができます。
2. functions.phpを使って、記事のリンク先をカスタムフィールドで指定したURLに変更する
リダイレクトURLを記入するカスタムフィールドを用意しておき、記事のリンク先をカスタムフィールドで指定したURLに変更します。
カスタムフィールドの作成は、プラグイン「Custom Field Template」を使うと簡単です。
プラグインをインストール、有効化したら、設定 > カスタムフィールドテンプレート に進みます。
カスタムフィールドテンプレートに下記のように入力して、リンクURLを入力するためのフィールドを作成します。
[link_url] type = text size = 35 label = リンク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にリダイレクトすることができます。
プラグインをインストール、有効化すると、記事の編集画下部にリダイレクトの設定欄が表示されます。
「Redirect」のチェックボックスにチェックをつけて、「Redirect to」にリダイレクト先のURLを入力します。
404エラーページのリダイレクトなども設定できる有料版もありますが、今回は特に購入の必要はありません。同じような機能が欲しい場合も、他の無料プラグインで代用できます。
4. functions.phpを使って、記事をカスタムフィールドで設定した任意のURLにリダイレクトする
以前の記事で紹介した方法です。
カスタムフィールドにリダイレクト用のURLを設定しておき、functions.phpで記事をカスタムフィールドで設定したURLにリダイレクトするようにします。
カスタムフィールドの作成は、プラグイン「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 から設定画面に進みます。
「転送ルール」画面から複数のリダイレクトルールをまとめて管理することができます。
正規表現も使えるので、.htaccessを使用せずにWordPress全体のリダイレクトを細かく管理することができます。複雑なりダイレクトルールを設定したい場合におすすめのプラグインです。