• 解決済 yuura

    (@yuura)


    子カテゴリのアーカイブページを作っていたときに気になった現象について質問させてください。

    親カテゴリをhoge、子カテゴリをfooと設定しています。
    パーマリンク設定のカスタム構造で「/%category%/%postname%/」を設定した場合、

    http://example.com/category/hoge/foo/ → fooの記事一覧が表示される
    http://example.com/foo/ → fooの記事一覧が表示される
    http://example.com/hoge/foo/ → fooの記事が見つからない

    のですが、パーマリンク設定のカスタム構造を「/%category%/%postname%.html」にすると、
    http://example.com/hoge/foo/
    もfooの記事一覧が表示されるようになります。

    これにはなにか理由があるのでしょうか?
    できればcategoryも.htmlをつけずに記事一覧が表示されるのがベストなのですが、いまいちこのあたりの仕様がわからない状態です。
    もしかしてfooがタグと判断されているのかな、とも考えたのですがそうでもなさそうで…。
    どうぞよろしくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • CG

    (@du-bist-der-lenz)

    「記事一覧が表示されるのが」というのが、アーカイヴページのことに思えるのですが、パーマリンク設定で行うのはURL表示ですよね。

    WordPressではリクエストURIに応じたページを表示する際に、まずリクエストURIの
    パターンを調べ、そのパターンに応じてカテゴリーやタグ、ページを検索しています。

    > http://example.com/category/hoge/foo/ → fooの記事一覧が表示される
    リクエストURIの先頭に’category’がある場合は、カスタム構造の「/%category%/%postname%/」
    のルールにマッチするか調べる前にカテゴリーアーカイブページのルールにマッチするので、
    記事一覧が表示されます。

    > http://example.com/hoge/foo/ → fooの記事が見つからない
    この理由は、リクエストされたURIがカスタム構造の「/%category%/%postname%/」のルールに
    マッチしてしまい、カテゴリーhogeがついている投稿記事のfooを検索して、該当する記事が
    見つからなかったということですね。

    カスタム構造が「/%category%/%postname%.html」の場合、リクエストURIのhttp://example.com/hoge/foo/ はそのルールにマッチせず、最終的にカテゴリーhoge/fooの
    投稿記事が検索され、アーカイブページが表示されるようです。

    > http://example.com/foo/ → fooの記事一覧が表示される
    これも上記のルールでカテゴリーfooの投稿記事が検索されますが、これについては過去の
    一部のバージョンにおいて正しく表示できなかった覚えがあります。

    トピック投稿者 yuura

    (@yuura)

    お返事ありがとうございました!
    categoryがある場合は別のルールがまずは優先されること、カスタム構造の検索ルールについてもふんわりですが理解できました。
    となると元々のパーマリンクの設定を見直せば(例えば日付ベースとか?)、http://example.com/hoge/foo/でも表示されるパターンがあるのかな…?と思ったのでまた時間を見つけて勉強してみようと思います。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「子カテゴリのアーカイブページURLとパーマリンクの設定の関連性について」には新たに返信することはできません。