久しぶりのMTカスタマイズネタです。
こちらでも書いた通り、MTはカテゴリーの順番を好きなように変えることができません。そのためカテゴリーを好きな順番で並べるためには、冒頭に数字をふったり、プラグインを使ってふった数字を消したりと、ややこしいカスタマイズが必要だったわけですが…
な、なんと、この度、数字もふらず、プラグインも使わず、サブカテゴリーで工夫することもなく、ましてや手打ちなんぞで苦労する必要もなく、本当にいとも簡単にカテゴリーを任意の順番で並べる方法を発見しました!! その方法とは!
名付けて半角スペース法!?
いや、ネーミングなんぞ、どうでもいい(^^;、カテゴリーの前に半角の空白を入れることによってカテゴリーの順番がコントロールできる!というものです。ネタ元はココログのブログサポート広場から。
ココログ=TypePad=Movable Type …ということは、この技、MTでも使えるかも!?
さっそく試してみました。現在はカテゴリーへのリンクは上部のナビゲーションとアーカイブ頁の2箇所に載せているのですが、上部ナビは手打ちで任意の順番になっているのに対し、アーカイブ頁は文字コード順のため、両者で並び順が統一されていないのが少し気になっていたので。結果はバッチリ反映されました!
例えば「レビュー・感想」の項目の場合。文字コード順だと、「アニメ」→「映画」→「本・雑誌」になってしまいます。さらに一番下にきてほしい「その他」が真ん中に来てしまうため、「本・雑誌」の子カテゴリーにして無理矢理一番下にしているという常態でした。そこで以下のようにカテゴリー名の前に半角空白を挿入。
映画(半角スペース4つ)
アニメ(半角スペース3つ)
本・雑誌(半角スペース2つ)
その他(半角スペース1つ)
じゃなくて、本当に と何もない半角のスペースにするのがポイント。すると、「映画」→「アニメ」→「本・雑誌」→「その他」ときれいに並びます。しかも挿入した半角スペースは頁には表示されません。ご覧の通り↓
→
管理画面でもきれいに好きな順番に並んで表示されます。どうしてこうなるのか分からないのですが、ともかく半角スペースが多いほど順番が先になるようです。
ところでこれ、ソースで見てみると、設定された半角スペースがそのまま出てますね。しかし連続した半角スペースは空白としては1つ分としか計算されないため、頁上ではよけいな半角スペースは消えて全部同じ位置から始まって表示されます。また、タグによってはタグ前後の半角スペースは空白とみなさないものもあるので、ソース上では
<li> カテゴリーA</li>
<li>カテゴリーB</li>
となっていても、表示の上では
- カテゴリーA
- カテゴリーB
となるので、見た目には問題なく使えます。これは凄いッ!! カテゴリのタイトルなど、他の部分でも問題なく表示されているのを確認しました。これならプラグインも使わなくていいのでダイナミック・パブリッシングでも問題なく使えます。何よりシンプルで簡単なのがいいです。
<注意事項>
デフォルトの状態ではカテゴリー名に半角のスペースを与えるとファイル名上ではその部分が「 _ 」となったりして正しくファイル名が出力されません。(参考:既知の問題)。この問題を避けるためには以下のカスタマイズを行っておく必要があります(いずれも最も基本的な設定なので、半角スペース法の使用にかかわらず、カスタマイズされておいた方がよいと思われます)。
■3.2以前のバージョン
アーカイブマッピングでカテゴリーファイル名を<$MTCategoryDescription$>に変更しておくなどして、デフォルトのファイル名は使わないようにします。
■3.3以降のバージョン
3.3からはカテゴリーのファイル名を自分で好きなものに変更できるようになったので、カテゴリの編集画面で出力ファイル名を設定して、デフォルトのファイル名は使わないようにします。
<注意事項その2>
●<MTEntries category="category_name">で複数カテゴリを指定したい時
このアトリビュートで複数カテゴリを指定する場合は AND か OR を使いますが、半角スペースで区切りが判断されるため、カテゴリ名の前に半角スペースがあると正しく AND が判断されないようです。
単独指定なら半角スペースがあっても正常に機能しますので、指定したい複数カテゴリが親カテゴリーで束ねられている場合は、<MTEntries include_subcategories="1" category="親カテゴリ名">のように、親カテゴリ経由で表示させるのも手です。
<追記>
数字とグローバル属性を使った第3の方法も追加エントリーしましたので、好みに応じてどうぞ。
カテゴリーを好きな順番で並べる(3) デコード&タグ編
(2006.9.28追記・修正)
(2007.5.12追記)
(2007.5.15 3つ目の方法へのリンクを追加)
コメント
daich | 2008年3月28日 16:35
すばらしい!!
MTを使い出して数年たちますが、カテゴリーの配列には泣かされてきました。こんなすごい裏技があるとは感激しました。有り難う。
TAEKO | 2008年3月29日 12:08
こんにちは。^^
まさに裏技ですよね。自分のカテゴリ並び変えは、ほとんどこれで済ませてしまっています。プラグイン使わなくていいし簡単ですし。コレを教えてくれた方には本当に感謝です。
higashimiyoshi | 2008年9月 1日 11:00
新規TypePad利用者です。非常に助かりました!感謝m(_ _)m
TAEKO | 2008年9月 2日 09:49
コメントありがとうございます~。
これ、簡単でいいですよね。何より気軽に使えるのがいいです。
雄 | 2010年2月 3日 16:29
htmlは何とか分かるが、MTタグはサッパリ、と言ったレベルの、個人趣味の範囲でMTを使い始めたものです。
MT-オープンソース(バージョン4)の時は、プラグインを使ってカテゴリの配置が出来ていましたが、今回 正規版のバージョン5で組み直したら、それが出来なくなってしまいました。
「カテゴリの並べ替え」管理画面では並び変わるのですが、それがブログに反映しませんでした。
より困ったことは、フォルダとその中のファイルも、文字コード順に並んでしまって、閲覧の順番表示がメチャクチャになってしまいます。
それがこの「半角スペース法」で全て解決しました。
一つ頭の中の雲が晴れました。
有難うございました。
後は、タグクラウドが正常に機能しない(同じタグが並列に並ぶだけ)と言う問題が有るのですが、データベースの文字コードが原因らしいとのこと。
こちらの「タグクラウドを作ってみる 」等も参考にしながら、何とか解決させたいものと思っています。
TAEKO | 2010年2月 4日 09:22
>雄さん
こんにちは。
お役に立てて嬉しいです。裏技ですけどこれ便利ですよね。
MT5はまだ触ってないのでMT5特有の問題?については私からは何とも言えない状況ですが、時間ができたらいろいろ試してみようと思ってます(今多忙なのでいつになるか分からないですが…^^;)。
これからもよろしくお願いします。