dポイントプレゼントキャンペーン実施中!

Movable Type4.22をローカル環境で使用しています。

Movable Type ブログ の「カスタムフィールドの値で並べ替えやフィルタリングする」
http://www.movabletype.jp/blog/filtering_sorting …

を参考に「カスタムフィールドの値を利用した項目の並べ替え」を行いました。

インデックステンプレート(メインページ)だと、並べ替えが成功しますが、
アーカイブテンプレート(カテゴリタイプでのブログ記事リスト)だと並べ替えが行われません。

アーカイブテンプレート(カテゴリタイプでのブログ記事リスト)だとこの方法は利用できないのでしょうか。

試しに「MTEntries sort_by="field:customfieldbasename"」を
「MTEntries sort_by="title"」に変更するとタイトル順で並べ替えられるので、
記述する場所が悪い訳ではないと思うのですが…。

※実際は、ふりがなでソートするようになっていて
<MTEntries sort_by="field:kana">
...
</MTEntries>
と記述しています。

やりたい事は、
記事のタイトルが漢字で、カスタムフィールドにそのフリガナを保存。
カテゴリをクリックすると、記事のタイトル一覧が表示されるが、
その時、それをフリガナ順でソートして表示したい。
です。

良い方法はありますか。
(記事の概要の箇所にフリガナを入力し、sort_by="excerpt"で並べ替える方法以外で)

A 回答 (1件)

こんばんは。



カスタムフィールド用のモディファイアが効かないのであれば、下記のサブテンプレートでいかがでしょうか。前半のEntriesタグで、ハッシュ変数のキー(kana)に「フリガナ(カスタムフィールドのテンプレートタグを指定)」、ハッシュの値(entry_title)に「ブログ記事のパーマリンクとブログ記事タイトル」を設定し、後半のLoopタグで、ハッシュのキーでソートし、ハッシュの値を出力させています。

詳細は省略しますので、各テンプレートタグの機能や、カスタマイズはご自身で行なってください。

--------------------------------
<mt:Entries>
<mt:kana setvar="kana" />
<mt:SetVarBlock name="entry_title"><a href="<mt:EntryPermalink />"><mt:EntryTitle /></a></mt:SetVarBlock>
<mt:SetVar name="kana_list{$kana}" value="$entry_title" />
</mt:Entries>

<mt:Loop name="kana_list" sort_by="key">
<mt:If name="__first__">
<ul>
</mt:If>
<li><mt:GetVar name="__value__" /></li>
<mt:If name="__last__">
</ul>
</mt:If>
</mt:Loop>
--------------------------------
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
おかげ様で、希望通りのテンプレートを作ることができました!

mt:SetVar、mt:SetVarBlockの具体的な使用方法も理解する事ができて、とても助かりました。ありがとうございます!!

お礼日時:2009/01/11 23:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!