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

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

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

CMS(Content Management System)は複数のユーザーでコンテンツを編集することが可能なWebサイトの管理/構築用のプラットフォームを指します。また、会社単位で運用管理するものはECMと呼びます。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Movable Type

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

Q&A

1回答

2166閲覧

MovableType: MTEntriesを入れ子にして条件分岐したい

fufu_2525

総合スコア0

CMS

CMS(Content Management System)は複数のユーザーでコンテンツを編集することが可能なWebサイトの管理/構築用のプラットフォームを指します。また、会社単位で運用管理するものはECMと呼びます。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Movable Type

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

0グッド

0クリップ

投稿2021/07/24 07:49

前提・実現したいこと

MTのカスタムフィールド (ラジオボタン)による
複雑な条件分岐について質問です。

個人の職種領域と役職についてのリストを作成しようとしていて、
それぞれを各記事のカスタムフィールド (ラジオボタン)にて管理しようとしています。

「領域1」「領域2」「領域3」の各3領域に対して、
「役職1」「役職2」「役職3」「役職4」「役職5」「役職6」の各6領域がぶら下がる形で
最終的にjson出力を行いたいです。

例えば、
Aさん(領域1、役職1)
Bさん(領域1、役職1)
Cさん(領域1、役職2)
Dさん(領域2、役職5)
Eさん(領域3、役職5)

のように、それぞれの領域に複数の異なる役職の人物が登録される場合もあれば、
その領域に一人もいない場合もあります。

発生している問題・エラーメッセージ

"field_1": { "position_1": [ { "img": "", "name_jp": "aa", "name_en": "aa", "subject": ["aa","aa","aa"], "contents": "<h1>aa</h1>", "url": "google.com" }, { "img": "", "name_jp": "bb", "name_en": "bb", "subject": ["bb","bb"], "contents": "<h1>bb</h1>", "url": "google.com" } ], "position_1": [ { "img": "", "name_jp": "aa", "name_en": "aa", "subject": ["aa","aa","aa"], "contents": "<h1>aa</h1>", "url": "google.com" }, { "img": "", "name_jp": "bb", "name_en": "bb", "subject": ["bb","bb"], "contents": "<h1>bb</h1>", "url": "google.com" } ] }

該当のソースコード

<MTBlogs include_blogs="00"> <MTEntries category="$hoge" field:hoge_field="field_1" sort_order="ascend"> <MTIf name="__first__"> "field_1": { </MTIf> <MTEntries field:hoge_position="position_1" sort_order="ascend"> <MTIf name="__first__"> "position_1": [ </MTIf> { "img": "<MThoge_imgAsset><MTAssetFileName></MThoge_imgAsset>", "name_jp": "<MThoge_name_jp>", "name_en": "<MThoge_name_en>", "subject": ["<MThoge_label nl2br="1" replace="<br>",'","'>"], "contents": "<MThoge_contents encode_json="1" strip_linefeeds="1">", "url": "<MThoge_url>" }<MTUnless name="__last__">, <MTElse> ], </MTUnless> </MTEntries> <MTIf name="__last__"> }, </MTIf> </MTEntries>

試したこと

各記事に個人の情報をそれぞれ登録・管理しようとしているのですが、
MTEntries を入れ子にして使用すると、
親MTEntriesの登録記事分だけ子MTEntriesも余分に出力されてしまい、希望の挙動になりません。

uniqueモディファイア を子Entriesにつけてみたところ、
上記のような余分な出力はないものの、
なぜか最初に登録した記事(CFが正しく付与されており本来なら出力されてほしい)が出なくなりました。

他にも、子カテゴリを3階層目まで作成し、(親カテゴリは別で使用している)
同じく条件分岐を試みましたがこちらは期待する反応からかけ離れたものになってしまいました。

補足情報(FW/ツールのバージョンなど)

MTのバージョンは、
Movable Type Pro r.4703
です。

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

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

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

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

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

guest

回答1

0

外側のMTEntriesにuniqueモディファイア、内側のMTEntriesにlimitモディファイアを付けるというのはどうでしょうか?

投稿2021/08/13 14:11

applebeat

総合スコア51

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問