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

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

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

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

Q&A

解決済

1回答

1712閲覧

Movable Type7で、特定のメインカテゴリを持つ記事のみ一覧に出力する方法

tekumak

総合スコア25

Movable Type

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

0グッド

0クリップ

投稿2020/03/24 04:04

編集2020/03/25 02:39

『ごはん』『パン』『麺類』というカテゴリが3つあり、
記事のうちメインカテゴリ(プライマリカテゴリ)に
『パン』が設定されているもののみを表示する記事一覧を作成したいのですが、
うまくいきません。

現在は下記のように書いているのですが、
サブカテゴリに『パン』がある場合も一覧に載ってしまいます。

html

1<ul class="menu_list"> 2<mt:Entries include_sites="2" limit="10" unique="1" category="パン"> 3 <li class="menu_item"> 4 <p class="menu_category"> 5 <mt:EntryPrimaryCategory><span><$mt:CategoryLabel escape="html"$$></span></mt:EntryPrimaryCategory> 6 </p> 7 <p class="menu_txt"><$mt:EntryTitle escape="html"$></p> 8 </li> 9</mt:Entries> 10</ul>

特定のメインカテゴリを持つものだけを記事一覧に表示させることは可能でしょうか。
お知恵をお借りできれば幸いです。よろしくお願いいたします。

追記

いただいた回答に合わせ、下記の通り調整しました。
ひとつのテンプレートで、パンリスト/その他リストを表示させている形です。
また、「注目情報」として、パン・その他問わず別箇所に1記事表示させていて、
その記事については下記リストには表示させないようにしています。

html

1<p>パンリスト</p> 2<ul> 3<mt:SetVar name="counter" value="1"> 4//10件をカウントするためのカウンター 5 6<mt:Entries include_blogs="3" lastn="0" unique="1"> 7<mt:If name="counter" le="10"> 8<mt:IfCategory name="パン" type="primary"> 9 <li class="menu_item"> 10 <p class="menu_category"><span>■■■■■</span></p> 11 <p class="menu_txt"><mt:EntryTitle></p> 12 </li> 13 <mt:SetVar name="counter" op="+" value="1"> 14//処理が1件終わったのでカウンターに1を足す 15 16</mt:IfCategory> 17</mt:If> 18</mt:Entries> 19</ul> 20 21<p>その他リスト</p> 22<ul> 23<mt:SetVar name="counter" value="1"> 24//10件をカウントするためのカウンター 25 26<mt:Entries include_blogs="3" lastn="0" unique="1"> 27<mt:If name="counter" le="10"> 28<mt:IfCategory name="ごはん" type="primary"> 29 <li class="menu_item"> 30 <p class="menu_category"><span>■■■■■</span></p> 31 <p class="menu_txt"><mt:EntryTitle></p> 32 </li> 33 <mt:SetVar name="counter" op="+" value="1"> 34//処理が1件終わったのでカウンターに1を足す 35</mt:IfCategory> 36 37<mt:IfCategory name="麺類" type="primary"> 38 <li class="menu_item"> 39 <p class="menu_category"><span>■■■■■</span></p> 40 <p class="menu_txt"><mt:EntryTitle></p> 41 </li> 42 <mt:SetVar name="counter" op="+" value="1"> 43//処理が1件終わったのでカウンターに1を足す 44</mt:IfCategory> 45 46</mt:If> 47</mt:Entries> 48</ul>

この時、『その他リスト』にunique="1"があると、『その他リスト』そのものが表示されなくなってしまいました。
どのように調整すればよいか見当もつきません…お力お菓子いただけますと幸いです…

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

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

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

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

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

guest

回答1

0

ベストアンサー

MTタグ「MTIfCategory」を使ってみてはいかがでしょうか。
https://www.movabletype.jp/documentation/appendices/tags/ifcategory.html

<ul> <mt:SetVar name="counter" value="1"> //10件をカウントするためのカウンター <mt:Entries include_blogs="3" lastn="0" unique="1"> <mt:If name="counter" le="10"> <mt:IfCategory name="■■■■■" type="primary"> //対象のカテゴリーを「■■■■■」にして、対象の範囲をプライマリーカテゴリーにする <li class="menu_item"> <p class="menu_category"><span>■■■■■</span></p> <p class="menu_txt"><mt:EntryTitle></p> </li> <mt:SetVar name="counter" op="+" value="1"> //処理が1件終わったのでカウンターに1を足す </mt:IfCategory> </mt:If> </mt:Entries> </ul>

投稿2020/03/24 10:57

applebeat

総合スコア51

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

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

tekumak

2020/03/25 00:49 編集

ありがとうございます!無事に『パン』カテゴリのみ出力できました。 すみません、もう一点うかがいたいのですが、 この『パン』の記事リストとは別に、『パン』以外のメインカテゴリを持つ記事のみ出力するには どうしたらいいのでしょうか。 name="■■■■■"をname="/ご飯|麺類/"としたり、 <mt:Else>で<li>要素を挟むことを試したのですがうまくいきませんでした。 お手数ですが何卒よろしくお願いいたします。
tekumak

2020/03/25 02:30 編集

度々すみません。 上記については<mt:IfCategory ...>を複数記述する形でうまくいったのですが、 同一ページで『パン』記事一覧、『ごはん|麺類』一覧を両方読み込むと、 後に読み込んでいる『ごはん|麺類』一覧のunique="1"が引っかかっているようで出力できなくなってしまいます。 何か対処法ありますでしょうか。。 大変お手数をおかけいたしますが、何か対処法ご存知でしたらお教えいただけると嬉しいです。
applebeat

2020/03/27 05:14

同一ページ内にある「ごはん、麺類」に属するそれぞれのエントリーの件数を数えて、それぞれのカウンターのスタートをその件数+1からスタートさせてばできるんじゃないでしょうか。
tekumak

2020/04/19 15:46

ご回答ありがとうございました。 いただいた内容で試行錯誤したのですが挙動がうまく行かず、そうこうしているうちにその仕様自体がなくなってしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問