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

category_02_m

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

Pocket

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

Pocket

ホームページ制作のお見積額が40万円以上で、20%OFFキャンペーン

カテゴリ

人気記事ランキング

  1. Google Mapがエラーで表示されなくなった場合の直し方
  2. 無料で使える明朝体の日本語WEBフォント
  3. WordPressの『get_categories』でカテゴリーリストを自由にカスタマイズする
  4. CSS Table displayについて見直してみる
  5. SNSのシェアボタンを自前のコードで設置する際のリンク設定まとめ

最近の投稿

月別アーカイブ

ブログ内検索

ホームページ制作のお問い合わせは横浜のDOEで。