• 解決済 finnapplearmy

    (@finnapplearmy)


    固定ページと同じURLのカテゴリページが表示できません。
    具体的には、もともと固定ページで以下のURLが存在していました。

    ■固定ページ
    http://www.aaa.com/test/

    その後サイト構造を変更する為、固定ページ「test」は削除しカテゴリページ「test」を作成したのですが、アクセスするとtestカテゴリの一覧ではなく記事ページへURLがリライトされてしまいます。

    ■カテゴリページ
    http://www.aaa.com/test/

    ↓アクセスすると・・・

    http://www.aaa.com/test/bbb/

    他のカテゴリページに関しては問題なくアクセス出来ます。
    こちらの原因及び対処方法はあるのでしょうか?

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • カテゴリページのURLは、

    サイトURL/category/カテゴリー名

    のように、categoryが入るので、categoryを入れてアクセスしてみてはいかがでしょうか。

    get_category_linkのようなWPの関数を使うと、カテゴリーのURLにcategoryは自動で挿入できますので、WPの関数を使うと作業漏れやミスを減らすことができます。

    トピック投稿者 finnapplearmy

    (@finnapplearmy)

    すみません、私の説明漏れでした。
    urlに「category」を入れたくなかったので、function.phpで「category」を置換しています。
    なので、以下のような状況です。

    カテゴリdogへアクセス
    http://www.aaa.com/dog/
    →OK

    カテゴリcatへアクセス
    http://www.aaa.com/cat/
    →OK

    カテゴリtestへアクセス
    http://www.aaa.com/test/
    →NG、http://www.aaa.com/test/bbb/にリライトされる

    urlに「category」を入れたくなかったので、function.phpで「category」を置換しています。

    WordPressに問題があるのではなくて、ご自身の作成したコードが上手く動かない、ということでしょうか。
    となると、実際のコードを提示してもらわないと、回答が難しいですね。

    一応、No Category Base ( https://ja.wordpress.org/plugins/wp-no-category-base/ )
    というプラグインで、カテゴリーアーカイブのURLから/category/を削除できますが、

    その手の不具合が報告されています。

    WordPressの構造上、単純にURLからcategoryを消せばよいという話ではないので、
    基本的には不可能、もしくは、かなり高度なカスタマイズが要求されます。

    トピック投稿者 finnapplearmy

    (@finnapplearmy)

    以下がfanctions.phpに記載したコードです。

    add_filter('user_trailingslashit', 'remcat_function');
    function remcat_function($link) {
    	return str_replace("/category/", "/", $link);
    }
    
    add_action('init', 'remcat_flush_rules');
    function remcat_flush_rules() {
    	global $wp_rewrite;
    	$wp_rewrite->flush_rules();
    }
    
    add_filter('generate_rewrite_rules', 'remcat_rewrite');
    function remcat_rewrite($wp_rewrite) {
    	$new_rules = array('(.+)/page/(.+)/?' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&paged='.$wp_rewrite->preg_index(2));
    	$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
    }

    私の見解ですが、固定ページと重複するURLが生成された為に起きた不具合なのかと推測しています。

    トピック投稿者 finnapplearmy

    (@finnapplearmy)

    こちら原因は不明のままですがスラッグを「test1」と別の名前にすることで対応しました。
    質問に回答をして頂いた皆様ありがとうございます。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「カテゴリのリライトルールに関して」には新たに返信することはできません。