• 解決済 agnist

    (@agnist)


    WordPressの仕様だと思うのですが、カテゴリ階層とエントリーのスラッグに間違いがなければ、その間のカテゴリ名が間違っていてもエントリーにアクセスできてしまうと思います。

    ●例
    正:http://www.example/aaa/entry.html
    誤:http://www.example/bbb/entry.html

    この場合、後者でも前者のページにアクセスできてしまいます。
    これを普通に404が出るように制限したいと思うのですが、プラグインなどで対応する方法はありますでしょうか?

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック投稿者 agnist

    (@agnist)

    ありがとうございます。
    ご提案いただいた方法を試したのですが、こちらの方法は「似たスラッグの記事でもアクセスできてしまう」ことの対処のようで、カテゴリ名が違う場合の対応には至りませんでした。

    ドンピシャな答えは、なかなか見つからないものです。

    これでいいかどうかは、ちょっとやってみただけなのでわかりませんが、工夫してみてください。

    add_filter( 'redirect_canonical', 'my_redirect' ,10, 2 );
    
    function my_redirect( $redirect_url, $requested_url ) {
    
    	preg_match( '!'.home_url().'/([^/]+)/!',$requested_url, $regs);
    
    	if( isset( $regs[1] ) && isset( $redirect_url )  ) {
    
    		if ( term_exists( $regs[1], 'category' ) ) {
    
    			return $redirect_url;
    		} else {
    			return home_url();
    		}
    
    	}
    }

    テストの条件

    パーマリンク:カスタム

    /%category%/%post_id%.html

    カテゴリベース .

    でやってみました。

    トピック投稿者 agnist

    (@agnist)

    ありがとうございます。
    試して工夫などしたく思います。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カテゴリ名を間違えた際のアクセスを制限したい」には新たに返信することはできません。