top

カテゴリーを好きな順番で並べる(3) デコード&タグ編

このブログではカテゴリーの並び順は半角スペース法を使ってコントロールしていますが、<MTEntries>で複数カテゴリーを指定できないという弱点がありました。が、これまではそういう使い方をする必要がなかったため、この問題は気にせず放置していました(^^;。

しかしMultiBlogの絡みで<MTEntries>系のタグ内で複数カテゴリを使う必要性が出てきたため、MTタグを使ったトリッキーな方法に一部変更しました。これも半角スペース法同様、目からウロコ系のテクニックで、プラグイン無しで使えます。のでダイナミック派にもおすすめです。

ネタ元はオラオラさんのNOプラグインでカテゴリーソートから。

カスタマイズ方法
カテゴリー名の前に数字をふって順番をコントロールする、というのは他のやり方と同じですが、数字を&lt;&gt;で囲むのがミソ。<>ではなくて、&lt;&gt;なのがポイントです。

&lt;001&gt;MovableType
&lt;002&gt;REVUE
&lt;003&gt;MEMO

テンプレートの<$MTCategoryLabel$>に赤字のグローバル属性を追加します。

<$MTCategoryLabel decode_html="1" remove_html="1"$>

つまり、&lt;001&gt;をdecode_html="1"でいったん<001>に戻し、さらにremove_html="1"で<001>をHTMLタグとして除去しているわけです。結果、表示されるカテゴリ名からは&lt;001&gt;部分がきれいに消えて、表示したいカテゴリー名のみになるというわけです。

目的に応じた使いこなしを
今回の件では、差し当たり、親カテゴリーだけがcategory="カテゴリーA OR カテゴリーB"の対象になればよかったので、変更したのは親カテゴリのみで、子カテゴリは今まで通り半角スペース法のままでコントロールしています。
というのも、個人的にですが、管理画面でカテゴリ名の前に<001>など余計なものが付くのがどうしても嫌だーっという私の好みもありまして。自分にとって心地いいやり方を取り入れていけばいいと思います。

<追記>
MT4.25ではこの方法だとMTEntriesのcategoryモディファイアでエラーするもよう。MT4では正規表現が使えるので、以下の方法の方がおすすめのようです。
カテゴリーを好きな順番で並べる(5) regex_replace編

 

トラックバックURL

トラックバックされる際にはこの記事へのリンクをお願い致します

コメントを投稿

 


 <注意>
 ご利用のブラウザ、設定ではコメントのプレビューおよび投稿はご利用になれません。
 コメント投稿の際はお手数ですがjavascriptをオンにして下さい。
 *javascriptオフのまま投稿ボタンを押すと送信内容が消えますのでご注意下さい。