WordPressを利用して、ブログではなくCMSとして企業サイト・企業ウェブサイト作成・商用ホームページ制作のテクニックを公開。WordPressの最新ニュースやプラグインの紹介、自作プラグインやテーマも開発中。
Top Level Categories Fixプラグイン

Top Level Categories Fixプラグイン

Top Level Categories Fixプラグインは、Top Level Categoriesプラグインを使用時に、パーマリンク設定を「/%category%/%postname%/」などのように設定した場合にページナビゲーション(Pagination)やサブカテゴリが正しく機能しなくなる不具合を修正するプラグインである。Top Level Categoriesについては、URLにcategoryを表示させないプラグイン Top Level Categories Pluginで紹介したわけだが、パーマリンクのURLの末尾に/(スラッシュ)をつけるプラグイン Nice Trailingslashitの記事の中でこの不具合について触れた。

この不具合についてなんとか解決策はないものかとお問い合わせをいただいたので、暫定的にTop Level Categories Fixプラグインを公開したいと思う。ページナビゲーション(Pagination)が正しく機能しないというのは、例えばexample.com/category/page/2/のような場合に、404を返してしまうというものだ。サブカテゴリの時も同様で、例えばexample.com/category1/category2/のような場合にも404を返してしまうのだ。

不具合の発生条件

  • Top Level Categoriesを使用している
  • パーマリンクを「/%category%/%postname%/」のように「/」で終えている。(末尾が.htmlなどの場合にはこの不具合は発生しない。)

ヒストリー

  • 2008.08.25 Top Level Categories Fix 0.2.3 リリース
    • Language Switcher使用時の不具合修正。ソースの該当箇所がコメント化されているのでコメントを消して使用する。
  • 2008.08.18 Top Level Categories Fix 0.2.2 リリース
    • バグフィックス
  • 2008.08.17 Top Level Categories Fix 0.2.1 リリース
    • バグフィックス
  • 2008.08.16 Top Level Categories Fix 0.2 リリース
    • /%category%/%post_id%/ に対応
  • 2008.08.14 Top Level Categories Fix 0.1 リリース

ダウンロード

Top Level Categories Fixをインストール

このプラグインの使用方法は大変簡単で、圧縮ファイルをダウンロード、解凍したtop-level-cats-fixディレクトリを、wp-content/pluginsにアップロードしてほしい。管理メニューのプラグインページで有効化すれば不具合が解消されるはずである。

寄付

プラグインがお気に召しましたら、よろしければ下記のPaypalリンクよりご寄付ください。よろしくお願いいたします。




このプラグインは何をしているの?

不具合の発生条件の際に、WordPressがクエリをパースする過程で、カテゴリを表示しているにも関わらず、カテゴリと判定されない、またはページ番号がうまくセットされないというのが問題なので、不具合の発生時に強制的に判定内容をセットしている。

もしかしたらもっと良い解決方法があるかもしれない。また、もしかしたらうまく動作しない場合もあるかもしれないのでその際は教えてほしい。最後に、もともとのプラグインであるTop Level Categoriesがこの不具合を解決してくれることを期待したいものだ。

Top Level Categories Fix plugin

This plugin modifies the url which includes subcategories and paginations when the Top Level Categories plugin is in use.

Occurrence Condition

  • Top Level Categories plugin in use
  • The permalink is ended at a slash “/” such as “/%category%/%postname%/”

History

  • 2008.08.25 Top Level Categories Fix 0.2.3 release
    • Bugfix for the Language Switcher plugin.
  • 2008.08.18 Top Level Categories Fix 0.2.2 release
    • Bugfix.
  • 2008.08.17 Top Level Categories Fix 0.2.1 release
    • Bugfix.
  • 2008.08.16 Top Level Categories Fix 0.2 release
    • /%category%/%post_id%/
  • 2008.08.14 Top Level Categories Fix 0.1 release

Download

Installation

  • Copy the `top-level-cats-fix` directory into your `wp-content/plugins` directory
  • Activate the plugin through the ‘Plugins’ menu in WordPress
  • That’s it! :)

Donation

If you liked this plugin, please make a donation via paypal! Any amount is welcome. Your support is much appreciated.




50 Comments

  1. query_posts を使用してカテゴリごとに記事数をコントロールしていると
    Fatal error: Cannot unset string offsets top-level-cats-fix.php on line 34
    とエラーが出てしまいます。

    query_posts との併用は難しいでしょうか?
    よろしくお願いします。

    ニコル
  2. どうもこんにちは。

    少し修正をかけてみましたがどうでしょうか。
    Top Level Categories Fix 0.2.1がダウンロード可能です。
    query_postsの内容を教えていただければ検証してみたいと思うのですが。

    それではよろしくお願いします。

    Wordpress Go Go
  3. 改良ありがとうございました。
    しかし、今度は35行目に同じエラーが出てしまいました。
    query_postsの内容は以下のようになっています。

    query_posts($query_string . "&posts_per_page=3&orderby=modified")

    よろしくお願いします。

    ニコル
  4. もう一度修正してみました。
    Top Level Categories Fix 0.2.2です。
    今度はいかがでしょうか。

    よろしくお願いします。

    Wordpress Go Go
  5. すいません、Top Level Categories Fixのバグでなく
    Top Level Categoriesのバグだと思うのですが
    質問させて下さい。

    Language Switcher
    http://www.poplarware.com/languageplugin.html
    というプラグインと併用しています。

    このプラグインを使用すると、言語の切り替えのURLに
    http://www.example.com/記事/langswitch_lang/en/
    みたいに最後に言語の切り替えの文字が付加されます。

    Top Level Categoriesを使用した状態で
    カテゴリを表示させると
    http://www.example.com/カテゴリ名/langswitch_lang/en/
    http://www.example.com/カテゴリ名/サブカテゴリ名/langswitch_lang/en/
    で両方とも、404エラーが出ます。

    Top Level CategoriesとTop Level Categories Fixを両方使用した場合だと
    http://www.example.com/カテゴリ名/langswitch_lang/en/
    では404エラーが出まして
    http://www.example.com/カテゴリ名/サブカテゴリ名/langswitch_lang/en/
    では正常に表示されました。

    /%category%/%postname%.html だと問題はありませんでした。

    第一階層のカテゴリだと404エラーが出てしまうのを
    Top Level Categories Fixの方で修正するのは可能でしょうか?

    お手数ですが、よろしくお願いします。

    ニコル
  6. ニコルさん、どうもこんにちは。

    Language SwitcherとTop Level Categoriesの環境を試してみました。Top Level Categories Fixがあろうとなかろうとページナビゲーションが発生すると404となってしまうような感じでした。

    Top Level Categories Fix自体がかなり強引な手法で不具合を修正しているので、パーマリンクに影響を与えるプラグインがうまく動作しない場合が多々あるのかもしれません。

    さて、どうするかですが以下の部分(51行目あたり)を変更してみてはどうでしょうか。

    (変更前)
    $query->query[‘category_name’] = preg_replace(‘/\/page$/’, ”, $qv[‘category_name’]);

    (変更後)
    $query->query[‘category_name’] = preg_replace(‘/\/langswitch_lang\/[a-z]+|\/page$/’, ”, $qv[‘category_name’]);

    Language Switcherで使用されるスラッグがデフォルトのlangswitch_langの場合ですが、これでなんとなく動くんじゃないかと思うんですが。(クオテーションマークにご注意ください。)

    さすがに個別事象なのでリリースは控えさせていただきます。とりあえず試してみてください。

    Wordpress Go Go
  7. と書きましたが、これはパーマリンクが/%category%/%post_id%/の場合ですね。/%category%/%postname%/の場合にはニコルさんがおっしゃる通りになるかもしれません。んー、もう一度考え直したいと思います。

    Wordpress Go Go
  8. /%category%/%post_id%/と/%category%/%postname%/の両方に対応したコードを追加したTop Level Categories Fix 0.2.3をリリースしました。ソースにコメント化された部分があるのでコメントを消して使用してみてください。

    うまくいくとよいのですが。それではよろしくどうぞ。

    Wordpress Go Go
  9. バージョンアップありがとうございました。
    うまくいきました。
    重ね重ねありがとうございました。

    Top Level Categories Fix 0.2.2の
    51行目を書き換えたものも、無事動作しました。

    ニコル
  10. Pingback: YN design yukinachu.com » Blog Archive » Top Level Categories Fixプラグイン

  11. Pingback: 花風Milk-Tea* - WPサイトを始めました

  12. Pingback: 花風Milk-tea* - WPサイトを始めました

  13. Pingback: 花風Milk-tea* - WP奮闘記

  14. Pingback: btmup Blog [tech]

  15. Pingback: Top Level Categories パーマリンク… « Wordpressプラグインメモ

  16. Pingback: IT君の大冒険 » Blog Archive » URLにcategoryを表示されないようにするPlugin

  17. Pingback: WordPressムジログパッケージ2.7.1テスト版配布開始 - [mu]ムジログ

  18. Pingback: top-level-cats-fix | 9℃

  19. Pingback: category/をURLから消すプラグインTop Level Categories « Wordpress Design b

  20. Pingback: WordPress用プラグイン「Top Level Categories」 | littleflag.com

  21. Pingback: WordPressの便利なプラグイン一覧 | FOOTMARK

  22. Pingback: WPでURLからcategoryを削除するプラグイン「Top Level Categories」 | FOOTMARK

  23. Pingback: wordpressプラグイン[WP-Pagenavi]の不具合と対処。 | WebScripter.jp

  24. Pingback: CMS in WordPress by アカキウェブシステム : wordpress パーマリンク ページ分割 表示されない

  25. Pingback: takeoo.com » Blog Archive » サイトっぽくさせれるかどうか

  26. Pingback: WordPressページ分割プラグインWP-Pagenaviの2ページ目以降が表示されない原因|北海道札幌市のホームページ制作 RANATELIER

  27. Pingback: アーカイブページなどのURLに自動で挿入される/category/を消してくれるプラグイン「Top Level Categories」[WordPress(WP)] | KoToRi Blog【コトリブログ】

  28. Pingback: お世話になっているWordPressプラグインあれこれ | kumonosu.jp

  29. Pingback: WordPressのパーマリンクURLをカテゴリー名に。 | cherpis.

  30. Pingback: WordPressで「/page/2/」以降が404エラーになる不具合を解消する方法 : おばけノート

  31. Pingback: ページネイションで2ページ目以降が404エラーになるバグ(?) | ホームページ制作MAKAP

  32. もう4年も経っていますが^^遅れ馳せながら報告します。不具合発生条件のところに、「末尾が.htmlなどの場合にはこの不具合は発生しない。」とありますが、当方は、パーマリンクの「カスタム構造」で「/%category%/%postname%.html」と設定してるにも拘らず、ページナビのリンク先がnot foundになります。

    pyon-yon
  33. Pingback: アップロード 【HOME】 » 2ページ目以降がエラーになるその後・・・。

  34. Pingback: サブカテゴリの投稿記事にアーカイブやカテゴリーページが表示される | webデザイン初心者が中級デザイナーになるためのブログ

  35. Pingback: WordPress:カテゴリアーカイブにカスタム投稿タイプも追加した一覧ページでページングにハマった | 西宮でホームページ制作やワード/パワーポイントでの企画書・提案書をSOHOで制作|いか

  36. Pingback: WordPress:カテゴリアーカイブにカスタム投稿タイプも追加した一覧ページでページングにハマった | 西宮でホームページ制作やワード/パワーポイントでの企画書・提案書をSOHOで制作|いか

  37. Pingback: カテゴリーページでページネーションすると404エラーになる | Web Site Reference

  38. Pingback: カテゴリーページでページネーションすると404エラーになる | WEBデザイナーのためのhtml、css、Wordpressの小技、参考サイトリンク集 | ウェブサイトリファレンス

  39. Pingback: wordpressに実装したプラグイン備忘録Ⅱ « ejiriweb

  40. Pingback: カテゴリーページでページネーションすると404エラーになる | Apple・テクノロジーのニュース、html・css・Wordpressの小技、参考サイトリンク集 | ウェブサイトリファレンス

  41. はじめまして。同じ症状に悩まされ、検索から来ました。
    それで、上記からTop Level Categories Fixのダウンロードができないのですが、もう配布は終了してますでしょうか?

    nk
  42. ご迷惑をおかけいたしました。
    ダウンロードできるようにしておきました。
    よろしくお願いします。

    Wordpress Go Go
  43. Pingback: WordPress:カテゴリアーカイブにカスタム投稿タイプも追加した一覧ページでページングにハマった - いかりんぐ IKA-ring.net

  44. Pingback: WordPressでページ送り(ページネーション)がうまくいかないときquery_postsとwp_queryどちらを使っても解決したまとめ2014。 | 未来工芸社

  45. Pingback: 【WordPress】よく使用するプラグイン | 集の一期一会

  46. Pingback: WP_pagenaviでカテゴリーアーカイブの2ページ目が表示されないとき | であっふぃ

  47. Pingback: category.phpでページ送りがリンク切れ | Pears Design Blog

  48. はじめまして。
    「Top Level Categories Fix」インストールしましたが、不具合を解消できなかったため、元の設定に戻したく削除しました。
    ところが「category」が表示されない設定に変わってしまいました。
    インストール前の状況に戻すには、削除以外にどこか設定変更が必要なのでしょうか?
    よろしくお願いいたします。

    ココ

Comments are closed.