●カテゴリーリストを並べ替えてみた。
ブログを運営していると、出てくる問題点の一つがカテゴリーの整理です。
当ブログもその例に漏れず、そろそこカテゴリーが増えてしまいました。(^^
まぁ、増えたモノは有る程度分類分けしているから良いのですが・・・。
順番が文字コード順だけしか選択できないので、思うとおりに並びません。(ToT)
昇順じゃ降順だけはもう満足できない体になってしまったわけですよ。(爆
そんな人向けにあるプラグインが有ったので、紹介しておきます。
詳しく知りたい方は、俺に連射王を郵送した上で、続きをご覧下さい。
てことで、プラグインと言えば真っ先に浮かぶのかあのサイト!
今回もまた、利用させて頂きました。
まずは配布元の記事を見た上で、俺の記事を読んで貰えればと思います。
#from The blog of H.Fujimoto
カテゴリーを並べ替えるプラグイン(MTSubCategoriesタグ専用版)
記事にも有りますが、このプラグインでは並べ替えできる箇所が限定されます。
でも、パン屑リストを気にしないのであれば、一番簡単なやり方だと思います。
・・・パン屑リストをあんまり考えていない俺には、ピッタリなプラグインです。
さて肝心の設定方法は、ほとんど配布元の壱さんの説明でバッチリです。
ただ、一部うまく行かなかったり、もっと楽できる部分とか有ったので、そこらを紹介しておきますね。
1.カテゴリーリストのhtml吐き出し
すでに壱さんの記事でも、インデックステンプレートを新規作成する手法が取られています。
俺も同様にやったのですが、それだとカテゴリーが全部繋がっていますし、
親カテゴリーと子カテゴリーのインデントが同じになってしまいます。
アニソンイントロクイズ' => '000', 'ヒント' => '000', '初めに・・・' => '000', '問題編' => '00000000', 'ヒント' => '00000000','解答編' => '00000000', 'アニメ' => '00000000',
このままだと、『SortCategories.pm』に貼り付ける前に、インデントや改行などの修正が必要です。
・・・いや、必要とは言わないけど、そのままじゃ見づらいし今後のメンテナンスも難しいですよね?
てことで、ちょっと手を加えてみた。
新規作成したインデックステンプレートの中身を、下記のように変更して下さいな。
<MTSubCategories>
<MTParentCategories exclude_current="1"> </MTParentCategories>'<MTCategoryLabel encode_php="q">' => '00000000',<br />
<MTSubCatsRecurse></MTSubCategories>
大したことじゃないですが、インデントとして半角スペース『 』を何個か付けています。
さらに、改行『<br />』も付けておきます。
すると、こんなリストになります。
'アニソンイントロクイズ' => '00000000',
'初めに・・・' => '00000000',
'問題編' => '00000000',
'ヒント' => '00000000',
'解答編' => '00000000',
'アニメ' => '00000000',
予めインデントも改行もされており、メンテナンスも楽になりますよね?
だって、後は順番を入れ替えて数値を変更するだけですから。
見た目で階層も分かるので、こっちの方が良いかなぁと思います。
後は、『SortCategories.pm』に貼り付けてしまえばOK。
2.文字コードをブログに合わせる。
俺はこれに気付かずに、1時間程悩んでいましたよ。orz
『SortCategories.pm』は最初、S-JISと言う文字コードで作成されています。
しかし、当ブログはUTF-8と言う文字コードで作成されています。
そのため、『SortCategories.pm』とブログ上の文字コードが違うため、違う文字列と認識するのだと思います。
同じ文字列として認識した場合に数値へ変換するので、できなければプラグインを使ってないと同じことです。
そんなわけで、自分のブログと同じ文字コードに変換して、『SortCategories.pm』を保存しましょう。
文字コード変換は、秀丸エディタなどのテキストエディタで可能だと思います。
アップロードはそれからです。(^^
3.『sort_method="SortCategories::MySort"』の付加
あとは、参考記事の通りに<MTSubCategories>を<MTSubCategories sort_method="SortCategories::MySort">にします。
これで再構築し直せば、無事に並び替えがうまくいっているでしょう。
4.うまく行かない人へ
上記の通りに設定しても、並び替えが上手く行かない場合があります。
なので、思いつくことを列挙しますから参考にして下さいな。
・『SortCategories.pm』に記述したカテゴリー名が違っている
カスタマイズ後にカテゴリー名を変更すると、ブログ上と一致しないから数値に変換できないのでしょう。
その結果、比較そのものがうまく行かず、並び替えが思い通りになりません。
『SortCategories.pm』のカテゴリー名と、ブログ上のカテゴリー名は同じにすること。
・『SortCategories.pm』に記述した数値の桁数が違っている
基本的に、作成したカテゴリー名を元に、数値に変換をしているようです。
で、その数値を比較して並び替えをしているようです。
桁数が違うと比較結果が違うので、並び替えが思い通りになりません。
『SortCategories.pm』の数値の桁数は同じにしておくこと。
・再構築を忘れている
特にphpモジュール化している方は、カテゴリー部分を再構築し直して下さい。
・『sort_method="SortCategories::MySort"』の付加し忘れ。
それ無理だから。ちゃんと付加しておいて下さい。
