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.
query_posts を使用してカテゴリごとに記事数をコントロールしていると
Fatal error: Cannot unset string offsets top-level-cats-fix.php on line 34
とエラーが出てしまいます。
query_posts との併用は難しいでしょうか?
よろしくお願いします。
どうもこんにちは。
少し修正をかけてみましたがどうでしょうか。
Top Level Categories Fix 0.2.1がダウンロード可能です。
query_postsの内容を教えていただければ検証してみたいと思うのですが。
それではよろしくお願いします。
改良ありがとうございました。
しかし、今度は35行目に同じエラーが出てしまいました。
query_postsの内容は以下のようになっています。
query_posts($query_string . "&posts_per_page=3&orderby=modified")
よろしくお願いします。
もう一度修正してみました。
Top Level Categories Fix 0.2.2です。
今度はいかがでしょうか。
よろしくお願いします。
無事動作しました。
本当にありがとうございました。
すいません、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の方で修正するのは可能でしょうか?
お手数ですが、よろしくお願いします。
ニコルさん、どうもこんにちは。
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の場合ですが、これでなんとなく動くんじゃないかと思うんですが。(クオテーションマークにご注意ください。)
さすがに個別事象なのでリリースは控えさせていただきます。とりあえず試してみてください。
と書きましたが、これはパーマリンクが/%category%/%post_id%/の場合ですね。/%category%/%postname%/の場合にはニコルさんがおっしゃる通りになるかもしれません。んー、もう一度考え直したいと思います。
/%category%/%post_id%/と/%category%/%postname%/の両方に対応したコードを追加したTop Level Categories Fix 0.2.3をリリースしました。ソースにコメント化された部分があるのでコメントを消して使用してみてください。
うまくいくとよいのですが。それではよろしくどうぞ。
バージョンアップありがとうございました。
うまくいきました。
重ね重ねありがとうございました。
Top Level Categories Fix 0.2.2の
51行目を書き換えたものも、無事動作しました。
Pingback: YN design yukinachu.com » Blog Archive » Top Level Categories Fixプラグイン
Pingback: 花風Milk-Tea* - WPサイトを始めました
Pingback: 花風Milk-tea* - WPサイトを始めました
Pingback: 花風Milk-tea* - WP奮闘記
Pingback: btmup Blog [tech]
Pingback: Top Level Categories パーマリンク… « Wordpressプラグインメモ
Pingback: IT君の大冒険 » Blog Archive » URLにcategoryを表示されないようにするPlugin
Pingback: WordPressムジログパッケージ2.7.1テスト版配布開始 - [mu]ムジログ
Pingback: top-level-cats-fix | 9℃
Pingback: category/をURLから消すプラグインTop Level Categories « Wordpress Design b
Pingback: WordPress用プラグイン「Top Level Categories」 | littleflag.com
Pingback: WordPressの便利なプラグイン一覧 | FOOTMARK
Pingback: WPでURLからcategoryを削除するプラグイン「Top Level Categories」 | FOOTMARK
Pingback: wordpressプラグイン[WP-Pagenavi]の不具合と対処。 | WebScripter.jp
Pingback: CMS in WordPress by アカキウェブシステム : wordpress パーマリンク ページ分割 表示されない
Pingback: takeoo.com » Blog Archive » サイトっぽくさせれるかどうか
Pingback: WordPressページ分割プラグインWP-Pagenaviの2ページ目以降が表示されない原因|北海道札幌市のホームページ制作 RANATELIER
Pingback: アーカイブページなどのURLに自動で挿入される/category/を消してくれるプラグイン「Top Level Categories」[WordPress(WP)] | KoToRi Blog【コトリブログ】
Pingback: お世話になっているWordPressプラグインあれこれ | kumonosu.jp
Pingback: WordPressのパーマリンクURLをカテゴリー名に。 | cherpis.
Pingback: WordPressで「/page/2/」以降が404エラーになる不具合を解消する方法 : おばけノート
Pingback: ページネイションで2ページ目以降が404エラーになるバグ(?) | ホームページ制作MAKAP
もう4年も経っていますが^^遅れ馳せながら報告します。不具合発生条件のところに、「末尾が.htmlなどの場合にはこの不具合は発生しない。」とありますが、当方は、パーマリンクの「カスタム構造」で「/%category%/%postname%.html」と設定してるにも拘らず、ページナビのリンク先がnot foundになります。
FV Top Level Categories
http://wordpress.org/extend/plugins/fv-top-level-cats/
というプラグインを試してみてください。
Pingback: アップロード 【HOME】 » 2ページ目以降がエラーになるその後・・・。
Pingback: サブカテゴリの投稿記事にアーカイブやカテゴリーページが表示される | webデザイン初心者が中級デザイナーになるためのブログ
Pingback: WordPress:カテゴリアーカイブにカスタム投稿タイプも追加した一覧ページでページングにハマった | 西宮でホームページ制作やワード/パワーポイントでの企画書・提案書をSOHOで制作|いか
Pingback: WordPress:カテゴリアーカイブにカスタム投稿タイプも追加した一覧ページでページングにハマった | 西宮でホームページ制作やワード/パワーポイントでの企画書・提案書をSOHOで制作|いか
Pingback: カテゴリーページでページネーションすると404エラーになる | Web Site Reference
Pingback: カテゴリーページでページネーションすると404エラーになる | WEBデザイナーのためのhtml、css、Wordpressの小技、参考サイトリンク集 | ウェブサイトリファレンス
Pingback: wordpressに実装したプラグイン備忘録Ⅱ « ejiriweb
Pingback: カテゴリーページでページネーションすると404エラーになる | Apple・テクノロジーのニュース、html・css・Wordpressの小技、参考サイトリンク集 | ウェブサイトリファレンス
はじめまして。同じ症状に悩まされ、検索から来ました。
それで、上記からTop Level Categories Fixのダウンロードができないのですが、もう配布は終了してますでしょうか?
ご迷惑をおかけいたしました。
ダウンロードできるようにしておきました。
よろしくお願いします。
Pingback: WordPress:カテゴリアーカイブにカスタム投稿タイプも追加した一覧ページでページングにハマった - いかりんぐ IKA-ring.net
Pingback: WordPressでページ送り(ページネーション)がうまくいかないときquery_postsとwp_queryどちらを使っても解決したまとめ2014。 | 未来工芸社
Pingback: 【WordPress】よく使用するプラグイン | 集の一期一会
Pingback: WP_pagenaviでカテゴリーアーカイブの2ページ目が表示されないとき | であっふぃ
Pingback: category.phpでページ送りがリンク切れ | Pears Design Blog
はじめまして。
「Top Level Categories Fix」インストールしましたが、不具合を解消できなかったため、元の設定に戻したく削除しました。
ところが「category」が表示されない設定に変わってしまいました。
インストール前の状況に戻すには、削除以外にどこか設定変更が必要なのでしょうか?
よろしくお願いいたします。