PowerCMS™

Interop 2019 に出展します / AI によるやさしい日本語自動翻訳エンジン

MTEntries

MTEntries

ブログのブログ記事の一覧のためのブロックタグです。モディファイアを指定することで、特定のカテゴリのブログ記事だけを抜き出すことや、日付順で指定した数のブログ記事を一覧することができます。ブログ記事アーカイブ以外のテンプレートでブログ記事を表示するときは、MTEntries ブロックタグを使います。

使い方

<MTEntries lastn="10">
<MTEntriesHeader>
<div class="hfeed">
    <h1>ブログ記事</h1>
</MTEntriesHeader>
    <div class="hentry entry" id="entry-<mt:EntryID>">    
        <h2 class="entry-title"><a rel="bookmark" href="<mt:Var name="permalink">"><$MTEntryTitle encode_html="1"$></a></h2>
        <ul class="meta">
            <li class="published"><abbr title="<mt:EntryDate format_name="iso8601">"><$MTEntryDate format="%b %d, %Y %H:%M" language="en"></abbr></li>
        <MTEntryIfTagged>
            <li class="tag">
                <ul><MTEntryTags>
                    <li><$MTTagName encode_html="1"$></li>
                </MTEntryTags></ul>
            </li>
        </MTEntryIfTagged>
        </ul>
        <div class="entry-content">
            <$MTEntryBody$>
        </div>
        <address> 
            <span class="vcard author">Posted by: <a class="url fn" href="<mt:EntryAuthorURL>"><$MTEntryAuthorDisplayName encode_html="1"$></a></span>&nbsp;
            <span class="updated">Last update: <abbr title="<mt:EntryModifiedDate format_name="iso8601">"><$MTEntryModifiedDate format="%b %d, %Y %H:%M" language="en"$></abbr></span>
        </address>
    </div>
<MTEntriesFooter>
</div>
</MTEntriesFooter>
</MTEntries>

モディファイア

lastn="N"

出力するブログ記事の件数を制限します。lastn モディファイアは、つねに降順 (新しいものから古いものに並ぶ) で処理します。

<mt:Entries lastn="5" sort_by="title" sort_order="ascend">

サンプルのように、たとえ sort_by モディファイアでタイトル順、かつ、sort_order モディファイアで ascend (昇順) を指定しても、出力する結果は、最新 5 件のブログ記事です。

これは、recently_commented_on モディファイアを同時に設定しているときも同じです。これらは lastn モディファイアと同時に使用しても効果はありません。

limit="N"

lastn モディファイアがブログ記事の作成日順に指定件数表示するのに対し、limit モディファイアは、指定された条件でフィルタリングした結果を指定数を最大件数として表示します。

値に auto を指定した場合、[ブログの設定] で設定した表示件数または、日数分で出力します。

sort_by="foo"

ブログ記事を並び替える対象を指定します。

  • authored_on (公開日・初期値)
  • author_id (作成ユーザー ID)
  • basename (出力ファイル名)
  • created_on (作成日)
  • excerpt (概要)
  • title (ブログ記事のタイトル)
  • comment_count (コメントの件数)
  • ping_count (トラックバックの件数)
  • text (本文)
  • text_more (続き)
  • title (ブログ記事のタイトル)
  • modified_on (変更日時)
  • rate ()
  • score ()

rate, score を指定するときは、namespace モディファイアで対象を設定する必要があります。

もし、Commercial Pack がインストールされているなら、カスタムフィールドの値を利用してソートできます。モディファイアの値を field:customfieldbasename のように設定し、customfieldbasename には、カスタムフィールドで作成したフィールドの [ベースネーム] を記入します。

sort_order="ascend | descend"

並べる順序を指定します。ascend を指定すると昇順 (新しいものが下)descend は降順 (新しいものが上) です。初期値は descend です。

field:customfieldbasename="foo"

カスタムフィールドの値 foo を利用して出力する記事をフィルタリングできます。モディファイアの customfieldbasename には、カスタムフィールド機能で作成したフィールドの [ベースネーム] を設定します。

例えば表示するブログ記事を、値が 2 だけのものにしたいときは次サンプルのようにします。

<MTEntries field:product_rank="2">...</MTEntries>

また、次のサンプルは、special というベースネームのフィールド (チェックボックスとする) がチェックされている、記事を新規作成順に並べ、その先頭から5件を表示します。

<mt:Entries field:special="1" sort_by="authored_on" sort_order="descend" limit="5">

このモディファイアでは、カスタムフィールドに入力した複数の値を組み合わせたフィルタリング (AND, OR, NOT) を利用できません。

namespace="foo"

スコアでソート (sort_by="score") するとき、どのスコア名前空間を使用するかを設定します。

Community Pack がインストールされている環境で、トピックや記事のお気に入り登録機能の登録数でソートしたいときは、community_pack_recommend を設定します。

offset="N"

指定した数のブログ記事を除外して表示します。値に 5 を指定すると、最新5件のブログ記事を除外してリスト表示します。lastn モディファイアと組み合わせて使ってください。

category="category_foo", categories="category_foo"

このモディファイアでは、ブログ記事を特定のカテゴリに属するものだけに、フィルタリングできます。

category="category_foo"、および categories="category_foo" のどちらも、挙動は同じです。1つのカテゴリをフィルタリングする際に categories="category_foo" と記述が可能ですし、複数カテゴリのフィルタリングをする際に category="category_foo という記述が可能です。

次のサンプルは、ひとつのカテゴリ (サンプルでは Featured カテゴリ)に含まれるブログ記事だけにフィルタリングします。

<mt:Entries category="Featured">

もし、指定したいカテゴリが、別の親カテゴリに含まれる同じ名前の子カテゴリなら、親カテゴリといっしょに指定します。

<mt:Entries category="News/Featured">

または

<mt:Entries category="Projects/Featured">

複数のカテゴリを組み合わせ、AND, OR, NOT などを使った複雑なフィルタリングもできます。次のサンプルは、Family または Pets カテゴリと、Featured カテゴリに含まれる (複数のカテゴリに含まれる) ブログ記事にフィルタリングします。

<mt:Entries categories="(Family OR Pets)AND Featured">

また、次のサンプルは、Family カテゴリ以外のカテゴリに含まれる記事 (どのカテゴリにも含まれないブログ記事も含む) にフィルタリングします。

<mt:Entries categories="NOT Family">
include_subcategories="1 | 0"

もし、category または categories モディファイアで設定したカテゴリの、全ての子カテゴリに含まれる記事にフィルタリングしたいときは、値に 1 を設定します。初期値は 0 です。

tag="tag_foo", tags="tag_foo AND tag_bar"

このモディファイアは、対象がブログ記事に設定するタグという点以外は category, categories モディファイアと同じ働きをします。ANDOR, NOT などの演算子にも使えるので、複雑なフィルタリングにも対応します。

author="author_user_name"

ブログ記事を特定のユーザーが投稿したものにフィルタリングします。設定するのは、ユーザーのログインに使用されるアカウント名 (ユーザー名)です。次のサンプルは、ユーザー名が Melody のユーザーが投稿したブログ記事にフィルタリングします。

<mt:Entries author="Melody">
id="entry_id"

このモディファイアは、単一のブログ記事にフィルタリングしたいときに使用します。次のサンプルは、entry id が 10 の記事のみにフィルタリングします。

<mt:Entries id="10">
min_score="score"
max_score="score"
min_rate="rate"
max_rate="rate"
min_count="count"
max_count="count"

ブログ記事に付けられたスコアに基づいた、ブログ記事のフィルタリング (score, rate, count) を行います。各々は namespace モディファイアが必要です。

scored_by="author_user_name"

特定のユーザーがスコアを付けた記事だけにフィルタリングできます。設定するのは、ユーザーのログインに使用されるアカウント名 (ユーザー名)です。

days="N"

現在の日に基いて、ブログ記事を指定日数内に投稿されたものに限定して出力します。次のサンプルは、現在の日に基いて、10日以内に投稿されたのブログ記事のみにフィルタリングします。

<mt:Entries days="10">
recently_commented_on="N"

最近コメント投稿されたブログ記事のリストの出力に使用します。指定するのは件数で、最近コメント投稿された N 件のブログ記事のみにフィルタリングします。次のサンプルは、最近コメント投稿された10件のブログ記事のみにフィルタリングします。

<mt:Entries recently_commented_on="10">
unique="1 | 0"

このモディファイアを付与すると、その MTEntries ブロックは、同じテンプレート内で使用した MTEntries ブロックで出力したブログ記事を除いて出力 します。

次のサンプルは、ひとつめの MTEntries で @featured シークレットタグが付けられたブログ記事の最新3件にフィルタリングを、ふたつめの MTEntries ブロックでは、最新7件のブログ記事にフィルタリングするようにしています。ふたつめの MTEntries ブロックには unique モディファイアが付与されていますので、出力する最新7件のブログ記事の中には、ひとつめの MTEntries ブロックで出力した @featured シークレットタグの付いた、最新3件のブログ記事は含まれません。

<mt:Entries tag="@featured" lastn="3">    ...</mt:Entries>
<mt:Entries lastn="7" unique="1">    ...</mt:Entries>
glue="foo"

出力されるブログ記事とブログ記事の間の文字を設定できます。次のサンプルでは entry ID を出力し、各々を , (カンマ) で区切ります。

<mt:Entries glue=","><$mt:EntryID$></mt:Entries>

サンプルの出力結果はつぎのとおりです。

10,9,8,7,6,5,4,3,2,1
blog_ids="all | children | siblings | ID"
include_blogs="all | children | siblings | ID"
include_with_website="1"
exclude_blogs="ID"

MTEntries と関連のあるテンプレートタグ (85)