• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MT4.1でCMS)

MT4.1でCMSを使って汎用ウェブサイトを構築する方法

このQ&Aのポイント
  • MT4.1でとある企業サイトを構築しようと考えています。会社概要などの固定ページが数ページと、頻繁に更新する複数のコンテンツ(プレスリリース、企業ブログ)を作りたいです。
  • マルチブログを使って汎用ウェブサイトを親サイトとし、会社概要や固定ページの更新情報、既定のブログや企業ブログの情報を統合したトップページを作成することが目標です。
  • 特定のカスタムフィールドを使用して、閲覧するブログ記事の中から最新の記事を取得し、クローズアップとして表示することも可能です。必要なフラグを設定し、表示させたい記事の条件を指定することで実現できます。

質問者が選んだベストアンサー

  • ベストアンサー
  • Muller3
  • ベストアンサー率81% (800/979)
回答No.3

追記:今日出された情報ですが、Movable Type 4.15では、簡単にカスタムフィールドの値がフィルタリングできるみたいです。 「カスタムフィールドの値で並べ替えやフィルタリングする」 http://www.movabletype.jp/blog/filtering_sorting_based_on_a_customfield.html 使ってみないとわかりませんが、とても簡単そうに見えます・・・

MAT335
質問者

お礼

わざわざありがとうございます! 残念ながら4.15はまだ使えない環境のため、先日お教えいただいた方法で試したところ、上手く動作しました。 おかげさまで大変助かりました。 ありがとうございます。 また何かでつまずいた時はよろしくお願いします!

その他の回答 (2)

  • Muller3
  • ベストアンサー率81% (800/979)
回答No.2

<MTEntries lastn="1">で条件に一致する最初のエントリーが表示されるのかと思っていたのですが、どうも違うみたいです(MTElseで条件に一致しないものを出してみたらわかりました) http://www.movabletype.jp/blog/mt41_tagcloud.html ここを参考にしてみました。解説もこちらを参照下さい。 <MTSetVar name="i" value="1"> <MTEntries lastn="10"> ←最新10件のエントリーを条件にあてはまるかチェックするという意味なので、もし最新10件が「しない」の場合、何も出ません。適宜変更下さい ※要はこれが"1"だったので「新しい記事の「closeup」が「する」になっている場合のみ表示がされ」ていたということらしいです;;) <$MTCloseup setvar="Closeup"$> <MTUnless name="seen{$Closeup}"> <MTIf name="closeup" eq="する"> <MTIf name="i" gt="0"> <MTSetVar name="i" op="--"> <MTSetVar name="seen" key="$Closeup" value="1"> <MTSetVarBlock name="tag_htmls" function="push"><$MTEntryTitle$><$MTEntryExcerpt$><MTEntryAssets><img src="<$MTAssetThumbnailURL$>" alt="<$MTAssetLabel$>" title="<$MTAssetLabel$>" /> </MTEntryAssets></MTSetVarBlock> <MTLoop name="tag_htmls"> <MTVar name="__value__"> </MTLoop> </MTIf> </MTIf> </MTUnless> </MTEntries> 参考先のソースをちょっと変えてみただけですので(すみません)、もしかしたら不要な記述があったりもっと他にいい方法があるかもしれません。(MultiBlogは未検証です。これをMTMultiBlogで囲んでみてください・・・) 出力されるHTMLには<h*>などのHTMLタグを全く入れていませんので、このままだととってもプレーンな状態で出力されます。参考先の「出力される HTMl を配列変数 tag_htmls に代入」を参考にしてみてください。

  • Muller3
  • ベストアンサー率81% (800/979)
回答No.1

<MTMultiBlog include_blogs="*,*,*" mode="context"> <MTEntries lastn="1"> <MTSetVarBlock name="closeup"><$MT[カスタムフィールドで設定したベースネーム]$></MTSetVarBlock> <MTIf name="closeup" eq="する"> <$MTEntryTitle$> <$MTEntryExcerpt$> <MTEntryAssets> <img src="<$MTAssetThumbnailURL$>" alt="<$MTAssetLabel$>" title="<$MTAssetLabel$>" /> </MTEntryAssets> </MTIf> </MTEntries> </MTMultiBlog> MTSetVarBlockでカスタムフィールドで入れた値を取得し、MTIfを使って条件抽出、これをMTMultiBlogタグで囲めばできないかなと思ったのですが、検証してないのでできなかったらすみません・・・ HTMLタグなどは入れていません。 「テンプレート内で、カスタムフィールド項目を利用する」 http://www.movabletype.jp/documentation/professional/custom-fields.html 蛇足ですが、モジュールにしてトップページにインクルードということになるかと思いますが、他のブログを更新したとき、トップページも再構築されないと更新情報は反映しないので、再構築トリガーを設定する必要があるかと。(ダイナミックパブリッシングだったら不要) http://www.movabletype.jp/documentation/designer/multiblog/configure_portal_blog.html

MAT335
質問者

お礼

詳細なご説明ありがとうございます。 お教えいただいた通りやってみたのですが、残念ながら【A】~【C】のブログ記事で最も新しい記事の「closeup」が「する」になっている場合のみ表示がされ、逆に「しない」になっていると「クローズアップ」自体が表示されないようです。 私の説明が不十分だったのですが、仮に最新の記事が「しない」になっている場合でもトップページのクローズアップは常に表示されていて、表示される記事は現存する記事で「する」を設定している中の最も新しい記事、という形ができればと考えています。 よろしければアドバイスお願いいたします。

関連するQ&A

専門家に質問してみよう