検索結果の一部を読み込む
更新日:2024.02.02
SearchEntriesプラグインでは、デフォルトでは検索で見つかったブログ記事をすべて読み込みます。
しかし、一部のブログ記事だけを読み込むようにすることもできます。
読み込む件数を制限する
検索されたブログ記事のうち、一部だけを読み込むように、件数を制限することができます。
それには、MTSearchConditionsタグのブロックの中に、「MTSearchLimit」というテンプレートタグを入れます。
<$mt:SearchLimit limit="件数"$>
例えば、以下のようにブログ記事を検索して出力するとします。
- タイトルに「Movable Type」を含み、かつコメントがついているブログ記事を検索します。
- コメント数の多い順に並べ替え、上位5件を出力します。
この場合、MTSearchLimitタグで「limit="5"」を指定して、上位5件だけを読み込むようにします。テンプレートを組むと、以下のようになります。
<mt:SearchConditions>
<$mt:SearchConditionLike field="title" values="Movable Type"$>
<$mt:SearchConditionCompare field="comment_count" ge="1"$>
<$mt:SearchSortOrder sort_by="comment_count" sort_order="descend"$>
<$mt:SearchLimit limit="5"$>
</mt:SearchConditions>
<mt:IfNonZero tag="SearchLoadedEntryCount">
<ul>
<mt:Entries>
<li><$mt:EntryTitle$>(<$mt:EntryCommentCount$>)</li>
</mt:Entries>
</ul>
</mt:IfNonZero>
先頭からx件をスキップして次のy件を読み込む
検索結果のうち、先頭のn件をスキップして、その次のy件を読み込むこともできます。
それには、MTSearchLimitタグと「MTSearchOffset」というタグを組み合わせます。
<$mt:SearchLimit limit="y"$>
<$mt:SearchOffset offset="x"$>
例えば、1.のところで取り上げた例で、コメント数ランキングの11位~15位を読み込みたいとします。
この場合、10位まで(先頭の10件)をスキップして、次の5件を読み込めば良いです。
従って、以下のようにテンプレートを組みます。
<mt:SearchConditions>
<$mt:SearchConditionLike field="title" values="Movable Type"$>
<$mt:SearchConditionCompare field="comment_count" ge="1"$>
<$mt:SearchSortOrder sort_by="comment_count" sort_order="descend"$>
<$mt:SearchLimit limit="5"$>
<$mt:SearchOffset offset="10"$>
</mt:SearchConditions>
<mt:IfNonZero tag="SearchLoadedEntryCount">
<ul>
<mt:Entries>
<li><$mt:EntryTitle$>(<$mt:EntryCommentCount$>)</li>
</mt:Entries>
</ul>
</mt:IfNonZero>