質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Movable Type

シックス・アパートが開発・提供する,ブログで用いられることの多いCMS製品

Q&A

0回答

1194閲覧

movable type SearchEntriesプラグイン使用時にフィルタリング結果のtotal_countを正しく取得できない

sweeet.biz

総合スコア12

Movable Type

シックス・アパートが開発・提供する,ブログで用いられることの多いCMS製品

0グッド

0クリップ

投稿2018/02/04 03:17

編集2018/02/04 03:24

藤本壱氏作成のSearchEntriesプラグインを使用して、
ブログ記事詳細検索プラグイン(その29・検索結果のページ分割/静的な検索の場合)の設置をし、正常に動くことを確認しました。
https://www.h-fj.com/blog/archives/2010/06/22-124651.php#step3

そこからさらに、特定のカテゴリに属する記事を検索結果から除外したい場合、
パラメーターとして取得してくる「total_count」の値が全ての記事のカウントになってしまい、ページ分割した時に、実際にフィルタリングされた数よりも多く出力されてしまい、ページネーションが余ってしまいます。

例えば、
100件の記事がある
検索結果から除外したいaaaというカテゴリに50件登録されている
1ページあたり10件表示する
という条件で、50件表示(5ページに分割)されるのが理想ですが、
実際には100件表示(10ページに分割)されてしまい、6ページ目以降は5ページ目と同じ内容が表示されてしまいます。

下記はダメもとでMTEntries側でフィルタリングしてみたものの、結果は同じでした。
「total_count」の値を正しく取得したい場合はどうしたらよいでしょうか?

補足
<$mt:SearchLoadedEntryCount$>で検索結果の値を代入したいのですが、
10件表示の場合は10になってしまうため、それもできませんでした。

<$mt:GetQueryParamsToVars$> <mt:IfRealtimeRebuild> <$mt:SetVar name="set_only" value="1"$> <mt:DivPagesInit> <mt:Else> <$mt:SetVar name="count_only" value="dp_total_count"$> <$mt:SetVar name="dp_per_page" value="10"$> <$mt:SetVar name="dp_offset" value="0"$> </mt:IfRealtimeRebuild> <mt:SearchConditions count_only="$count_only" set_only="$set_only"> <$mt:SearchConditionLike field="title" values="$qp_title"$> <mt:if name="qp_category"> <mt:SearchConditionCategorySection> <$mt:SearchConditionCategory category="$qp_category"$> </mt:SearchConditionCategorySection> <mt:SearchConditionCFSection field="aaa"> <$mt:SearchConditionCFLike values="001"$> </mt:SearchConditionCFSection> </mt:if> <$mt:SearchLimit limit="$dp_per_page"$> <$mt:SearchOffset offset="$dp_offset"$> </mt:SearchConditions> <mt:IfNoRealtimeRebuild> <mt:DivPagesInit per_page="$dp_per_page" total_count="$dp_total_count"> </mt:IfNoRealtimeRebuild> <$mt:LoadSearchedEntries$> <mt:IfNonZero tag="SearchLoadedEntryCount"> <p><$mt:SearchLoadedEntryCount$>件の記事が見つかりました</p> <ul class="result"> <MTEntries aaa="001" sort_order="ascend"> <mt:entryprimarycategory> <li> <a href="<$mt:EntryPermalink encode_html="1"$>"><$mt:EntryTitle$></a> </li> </mt:entryprimarycategory> </MTEntries> </ul> <mt:Else> <p>記事が見つかりませんでした。</p> </mt:IfNonZero> <mt:DivPagesIfMulti> <mt:SetVarBlock name="pager_link"$><$mt:DivPagesCGILink tmpl_name="詳細検索" tmpl_type="index"$>&amp;page=</mt:SetVarBlock> <div class="content-nav"> <mt:DivPagesIfPrevPage> <a href="<$mt:GetVar name="pager_link"$>1">&laquo; 最初</a> <a href="<$mt:GetVar name="pager_link"$><$mt:DivPagesPrevPageNumber$>">&lt; 前</a> </mt:DivPagesIfPrevPage> <mt:DivPagesLoop> <mt:DivPagesIfCurPage> <$mt:DivPagesNumber$> <mt:Else> <a href="<$mt:GetVar name="pager_link"$><$mt:DivPagesNumber$>"><$mt:DivPagesNumber$></a> </mt:DivPagesIfCurPage> </mt:DivPagesLoop> <mt:DivPagesIfNextPage> <a href="<$mt:GetVar name="pager_link"$><$mt:DivPagesNextPageNumber$>">次 &gt;</a> <a href="<$mt:GetVar name="pager_link"$><$mt:DivPagesLastPageNumber$>">最後 &raquo;</a> </mt:DivPagesIfNextPage> </div> </mt:DivPagesIfMulti>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問