Close

Web技術Tips

Homepage Tips Homepage Tips

ホームWeb技術Tips特定のページだけWordPressの自動リダイレクト機能を無効にする

SHARE

SHARE

WordPress 2017.06.15(公開)

特定のページだけWordPressの自動リダイレクト機能を無効にする

WordPress の標準URL(カノニカルURL)機能

WordPressには自動でURLを補完してくれる『標準URL(カノニカルURL)』という機能があります。

これがなかなか便利な機能で、例えばプラグインを使って固定ページをそっくり投稿ページに変換するとします。

普通は固定ページを投稿ページに変換するとページのURLが変わってしまうものですが、この『標準URL』機能によって、古いURLにアクセスすると新しいURLに自動でリダイレクトしてくれます。

例)

http://example.com/test/

http://example.com/2017/03/31/test/

うまくいかない場合

ただ、この補完機能はたまに間違えていたり、余計なことをします。

例えば、

  • http://example.com/aaa
  • http://example.com/bbb/aaa

という2つのURLは、ディレクトリ名は同じだけど階層が違うのですが、両方共

http://example.com/ccc

にリダイレクトしてしまうことがあります。

もちろんディレクトリ名が異なればこのバグは起きないですが、

functions.php にフィルターフックを記述することでも防げます。

コード

function redirect_special_permalink( $redirect_url, $requested_url ) {
	$match_url = array(
		'aaa'
	);
	foreach( $match_url as $url ) {
		if ( strpos($requested_url, $url) ) return false;
	}
	return $redirect_url;
}
add_filter( 'redirect_canonical', 'redirect_special_permalink', 10, 2 );

2番目の引数である $requested_url に、$match_url の内容が含まれていれば return false でリダイレクトをやめさせます。

 参考サイト

WordPressのおせっかいな404自動リダイレクトを止める - Qiita

DOE(横浜)のニュースとブログ

News News

横浜のWeb制作会社DOEはホームページ制作に関連するWeb技術、Webデザイン、SEO対策情報など人気&おすすめ記事を随時公開中です。
尚、Twitterでは現場の声がリアルタイム配信中です。良かったらShareして繋がってください。