Movable Typeの記事をお気に入り順に並べて表示する方法

Movable Typeの記事をお気に入り順に並べて表示する方法

Posted at September 3,2015 12:03 AM
Tag:[MovableType]

Movable Typeの記事をお気に入り順に並べて表示する方法を紹介します。

1.はじめに

Movable Typeのコミュニティ機能を利用することで、サインインしているユーザーは記事にお気に入りをすることができます。

下のスクリーンショットは、記事に表示されたお気に入りアイコンをクリックして、記事のお気に入り数を0から1にカウントアップさせたところです。

お気に入り(星のアイコン)をクリック
クリック

データベースに登録中
データベースに登録

お気に入りに追加されました(もう一度クリックすれば解除されます)
お気に入りに追加

このお気に入り機能を使って、別のページの記事一覧をお気に入り数順に並べ替える方法を紹介します。

ここでは下記のページに紹介されているテンプレートを利用します。

参考:トピックや記事のお気に入り登録機能 | コミュニティ・ソリューション

2.記事一覧をお気に入り数順に並べ替える

サンプルとして次の3つの記事があるとします。

  • テスト1
  • テスト2
  • テスト3

記事のお気に入り数は、テスト1が「0」、テスト2が「2」、テスト3が「1」となっています。

お気に入り数

この3つの記事をお気に入り数順に並べ替えて表示するには、次のようなテンプレートを記述します。

<mt:Entries sort_by="score" namespace="community_pack_recommend">
  <mt:EntriesHeader>
<ul>
  </mt:EntriesHeader>
    <li><$mt:EntryTitle$></li>
  <mt:EntriesFooter>
</ul>
  </mt:EntriesFooter>
</mt:Entries>

このテンプレートを再構築すると「テスト2」「テスト3」「テスト1」の順で出力されます。

再構築結果

3.テンプレート解説

ポイントとなるのは1行目のsort_byモディファイアとnamespaceモディファイアです。

<mt:Entries sort_by="score" namespace="community_pack_recommend">

「sort_by="score"」は記事一覧をスコアでソートすることを示します。

また、sort_byモディファイアに「score」を設定した場合、必ずnamespaceモディファイアの指定が必要です。

コミュニティ機能のお気に入り数を利用する場合、namespaceモディファイアには「community_pack_recommend」を設定します。

この「community_pack_recommend」はコミュニティ機能で提供されている値で、アドオンのMT::App::Communityに次のように定義されています。

use constant NAMESPACE => 'community_pack_recommend';

namespaceは、複数存在する可能性のあるscoreデータを特定するためのキーと思えばいいでしょう。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)