45式::雑記
45式::雑記は、日々の事を記してないから日記ではなく雑記です。

日本語カテゴリを任意に並べ替え、出力名を任意に指定する方法

コメント
0件
トラックバック
0件

この記事について

この記事はMovable Typeがバージョン3だった頃に書きました。現在、MTではカテゴリの並べ替えはThe blog of H.Fujimotoさんのプラグインで行えますし、カテゴリの出力名もシステムの標準機能で自由に指定できます。

前置き

Movable Typeのカテゴリを並べ替える方法と、カテゴリの出力名をコントロールする方法を日本語カテゴリー名の並びと出力フォーマットサイトは閉鎖されたようです)で発見しました。

この方法だと、カテゴリの並び順も標準からはありえない任意の順に指定でき、その出力名も任意に指定する事ができます。

霊夢
魔理沙
アリス

出力名も、カテゴリ名を日本語で指定した場合のhttp://www.example.com/cat_3/からhttp://www.example.com/reimu/など任意に変えられます。

カテゴリを任意に並べ替える

カテゴリの並べ替えは簡単です。
カテゴリ名の最初に半角英数字を加え、任意の順になるよう並べ替えます。この時に加える半角英数字は全て同桁でないといけません。

100霊夢
200魔理沙
300アリス

これで標準だと「アリス」「魔理沙」「霊夢」となる順を並べ替える事ができました。
お疲れ様でした。

「このままじゃ見苦しい」という方は見やすくするためにThe blog of H.FujimotoさんのCutFirstCharプラグインを使います。
このプラグインはcutfirstchar="半角数字"モディファイアを記述したタグの先頭からnバイト文字(半角n文字)をカットして結果を出力します。
上のカテゴリ名のように先頭に3文字加えた場合はcutfirstchar="3"をカテゴリ名を呼び出すタグMTCategoryLabelに加えます。

<$MTCategoryLabel cutfirstchar="3"$>

これでカテゴリ名の頭から半角英数字が消えた状態で並べ替えた順に出力されます。

霊夢
魔理沙
アリス

この方法で気をつけなければいけないのはカテゴリ名を呼び出す全てのタグにcutfirstchar="n"が常に必要だという事です。
例えば、MTArchiveTitleタグでカテゴリ名を呼び出している場合は、カテゴリ名を呼び出しているMTArchiveTitleタグにもモディファイアが必要です。

MT4.*以降ならCutFirstCharプラグインではなくregex_replaceグローバル・モディファイアを使う方法もあります。

カテゴリの出力名を任意に指定する

Movable Type3.3からカテゴリの出力名が指定できる機能が追加されましたので、MT3.3以降の方に以下の方法は不要です。

Movable Typeの仕様ではカテゴリの出力名はカテゴリ名を元に作り出されます。
しかしカテゴリ名が日本語だと、出力名はcat_数字という不恰好なものになってしまいます。

霊夢 : http://www.example.com/cat_1/
魔理沙: http://www.example.com/cat_2/
アリス: http://www.example.com/cat_3/

アドレスからでも何のカテゴリかわかるように、カテゴリの出力名を指定します。

今回紹介する方法では、「カテゴリーの説明」欄を利用します。
説明は後にしてまず以下のように入力してください。

&lt;出力名&gt;<dummy&gt;カテゴリーの説明&lt;dummy>

「霊夢」カテゴリの場合は以下のように入力します。

&lt;reimu&gt;<dummy&gt;博霊の巫女&lt;dummy>

最後に、カテゴリのアーカイブマッピングに次のように入力します。

<MTParentCategories glue="/"><$MTCategoryDescription dirify="1"$></MTParentCategories>

再構築するのをお忘れなく。
これで「霊夢」カテゴリの出力名が「reimu」になります。
もしも「霊夢」カテゴリの下にサブカテゴリ「腋」があった場合、アーカイブマッピングに記述したglueモディファイアの内容を変える事でサブカテゴリのアドレスを変更できます。

glue="/"でhttp://www.example.com/reimu/waki/
glue="_"でhttp://www.example.com/reimu_waki/
glue="-"でhttp://www.example.com/reimu-waki/

好みに合わせてカスタマイズください。

カテゴリの出力名は好みのものに変える事ができましたが、このままではカテゴリーの説明(MTCategoryDescription)が使い物になりません。
カテゴリーの説明を使えるようにするためには、MTCategoryDescriptionタグを書き換えます。

<$MTCategoryDescription$>を<$MTCategoryDescription decode_html="1" remove_html="1"$>

これでカテゴリーの説明(「霊夢」カテゴリでいう「博霊の巫女」)を呼び出す事ができます。

あとはテンプレートを直して完成です。
これでカテゴリの出力名を任意に指定できるようになりました。

霊夢 : http://www.example.com/reimu/
魔理沙: http://www.example.com/marisa/
アリス: http://www.example.com/alice/

コメント[0]

コメントはまだありません。

コメント投稿フォーム

コメントを投稿するにはJavaScirptが必要です。ブラウザのJavaScriptを有効にしてください。

コメント投稿フォーム

トラックバック[0]

トラックバックはまだありません。

カテゴリ
アーカイブ
ヘルプ
Feed

フィードとは