Movable Type4.23 日付カスタムフィールドによる月別アーカイブの作成

このQ&Aのポイント
  • Movable Type4.23で、ブログ記事作成画面に追加した日付カスタムフィールドを基準とした月別アーカイブを作成したい。
  • 月別イベント一覧を表示するために、記事のアーカイブマッピングをカスタムに設定したが、公開日を基準としてしまっている。
  • 月別アーカイブリストも実際の保存日を基準として表示させたい。どうすればよいかアドバイスをお願いします。
回答を見る
  • ベストアンサー

Movable Type4.23 日付カスタムフィールドによる月別アーカイブの作成

どなたかお助けください。 <やりたいこと> 月別アーカイブを作成日(公開日)ではなく、ブログ記事作成画面に追加した日付カスタムフィールドを基準とした月別アーカイブをつくりたい。 イベント情報のページを作っています。 イベント開催日を日付カスタムフィールド<$mt:cfeventday$>により入力(出力)するようにしています。当然記事作成時とイベントの開催日は異なります。 そこで、"月別イベント一覧"という月別アーカイブを作り、3月のイベント一覧、2月のイベント一覧という風に表示したいと思っています。 <やってみたこと> 記事のアーカイブマッピングをカスタムにて以下のようにしたところ <$mt:cfeventday format="%Y"$>/<$mt:cfeventday format="%m"$>/<$mt:cfeventday format="%d"$><MTEntryID pad="1">.html 2009 ├02 ├100001.html(2月10日に行われるイベント記事) ├200002.html(2月20日に行われるイベント記事) ├03 ├100003.html(3月10日に行われるイベント記事) ├200004.html(3月20日に行われるイベント記事) という風に、ファイル保存形式は見た目上、理想通りイベント開催月(開催日)ごとに保存されました。 あとは通常通り、月別アーカイブテンプレートを作成し、出力するだけと思いやってみたのですが、実際に出力されるのは、いつも通りの記事作成日(公開日)を基準としたくくりになってしまいます。 上記例でいくと、記事作成を2月1日に4つ全て行ったとしたら、全て2月のイベントとして表示されます。 また月別アーカイブリストは ├2009年2月(4) ├2009年3月(0) となります。 これらを日付カスタムフィールドで入力した日付を基準とした(実際の保存状態をもとに?)月別イベントアーカイブとして表示させたいのです。また、月別アーカイブリストも同様に ├2009年2月(2) ├2009年3月(2) のように表示させたいです。 以下が月別アーカイブテンプレートの内容です。 <p>3月開催予定イベント一覧</p> <mt:Entries sort_by="field:cfevntdaydasename" sort_order="ascend"> <$mt:cfeventday$><$mt:entrytitle$> </mt:Entries> 以下が月別アーカイブリストのテンプレート内容です。 <mt:ArchiveList archive_type="Monthly"> <mt:ArchiveListHeader><span class="dir">▼月別イベント一覧</span><ul></mt:ArchiveListHeader> <li><a href="<$mt:ArchiveLink$>"><$mt:ArchiveTitle$> (<$mt:ArchiveCount$>)</a></li> <mt:ArchiveListFooter></ul></mt:ArchiveListFooter></mt:ArchiveList> どうでしょうか。 何卒アドバイスよろしくお願いします。

  • HTML
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • elbavom
  • ベストアンサー率100% (67/67)
回答No.2

MTのアーキテクチャでは、月別アーカイブでご希望の機能を実現することはできません。 ただし、新たに追加したフィールドを検索結果として利用することができるので、それで代替可能と思います。 そのテクニックは「MTOS活用テクニック―カスタムフィールドで本格的なCMS機能を実現! 」に掲載されています(私はこの本の著者ではありませんし、何の利害関係もありません)。

kyotaro72
質問者

補足

elbavomさん、アドバイスありがとうございます。 あれから、いろいろとやってみたのですが、結局現在のMTでは出来ないのだろうなぁとあきらめていました。 なるほど!検索を使うのですね。 とりあえず、教えていただいた本買ってみます! ありがとうございました。

その他の回答 (1)

  • miya_00
  • ベストアンサー率47% (9/19)
回答No.1

まったく違う案なんですが、月別イベント一覧をカテゴリ、サブカテゴリでやっては駄目なんでしょうか? カテゴリで表示するなら今いっている事はまったく問題なしに実現可能です。

kyotaro72
質問者

補足

miya_00さんアドバイスありがとうございます。 なるほど、そういう手もありますね。 ただ、残念なことに、カテゴリはイベントカテゴリ一覧というものを作っており、出来れば月別アーカイブで作りたいのです。 すみません。

関連するQ&A

  • Movable Typeでカテゴリの月別アーカイブだけエントリー表示したい

    MovableType4.261を使用しています。 観光案内のサイトを構築しているのですが、 ・見る ・泊まる などのカテゴリの記事一覧を表示するために 「ブログ記事の概要」はサムネイル画像と、記事の文章を75文字抜粋するように設定しています。 またアーカイブテンプレートの「ブログ記事」と「ブログ記事リスト」にて各カテゴリのサイドバーと、イメージ画像が表示されるよう振り分けています。 「新着」のカテゴリの月別アーカイブのみ、↑の「ブログ記事の概要」の内容ではなく、このページのようにブログ記事が並ぶようにしたいのです。 http://www.izunotabi.com/jpn/news/2009/06/ http://www.kankou385.jp/news/2009/07/(現在の状態) 現在「カテゴリ-月別」のアーカイブマッピングは「ブログ記事リスト」にて設定しています。 「月別ブログ記事リスト」にて設定しようとしたら、各カテゴリ用のサイドバー(<MTTopLevelParent>ダグ)とイメージ画像の振り分け(<MTIfIsDescendant parent>タグ)がエラーとなり出来ませんでした。 どうかご教授おねがいいたします。

  • MovableType4 カスタムフィールドの設置

    毎度お世話になります。 MT4.2betaにてテンプレートを作成していますが、カスタムフィールドが設置できずに悩んでいます。 設定でカスタムフィールドを作成しテンプレートにタグを入れ、ブログ記事の編集画面で表示させ、保存しましたが、保存終了画面でフィールド入力欄が空になっており、うまく設定できません。 解る方いらっしゃいましたらアドバイス下さい。 お願いします。

  • gooブログで月別アーカイブを纏めたい

     gooブログ(無料)の「カスタムメタル」というテンプレートを使用しています。  現在月別アーカイブが27あり、そのせいで最新のコメント等が見辛くなっています。そこで、他のテンプレートのように、月別アーカイブを纏めたいのです。  一番良いのはボックスタイプ(横にスクロールバーのあるタイプ)ですが、この際ドロップダウンメニューでもプルダウンメニューでも構いません。これはカスタムでは出来ないものなのでしょうか。  無料版はCSSのみ弄ることが出来ます。CSSは少々齧った程度で、余り複雑なことは出来ませんが、よろしくお願いします。

  • Movable typeのカスタムフィールド

    Movable Typeで10個ほどカスタムフィールドを増やして ウェブページの編集に利用していたのですが、 日を改めて編集しようと思ってウェブページの 編集画面をみると、カスタムフィールドで増やした 「画像」の項目がなくなっていました。 記事としては画像が登録されているようですが、 編集画面に表示されず、画像の変更ができなくて困っています。 もう一度カスタムフィールドで作り直してみても、 編集画面に現れてくれません。 ちなみに、「表示オプション」にも項目が出ていません。 このような現象をご存知の方はいらっしゃいますでしょうか。

  • 月別アーカイブ内で、エントリーを囲んだ枠に、日付が入ってくれません。

    http://atany.net/test/ ↑のテストブログで、.entryを使って「エントリーごとに枠で囲む」というのに挑戦しています。トップページでは左上の日付まで枠内に入りますが、月別アーカイブに飛ぶと、左上の日付が枠外にはみ出してしまいます。 月のアーカイブ内で日付の部分を枠内に収めるようにするには、どう設定したらいいのでしょうか?

  • Movable Typeの個別エントリーアーカイブ・テンプレートの作成について

    大変、恐縮ですが・・・現在、Movable Typeをダウンロードしてブログをカスタマイズして作成しているのですが、 個別エントリーアーカイブ・テンプレートのテンプレート内にて 個別の記事を表示させたいのですが、タグを打ち込んで再構築してみると、個別エントリーページなので、トップページの様に、今まで投稿した全ての記事がアップされてしまっています。 私が打ち込んだ個別ページのテンプレート内の個別記事を表示させる為のコードは <MTEntries> <div class="entry" id="<$MTEntryID$>"> <h2><$MTEntryTitle$><br /> <span class="subtitle"> <$MTEntryDate$> </span></h2> <$MTEntryBody$> </div><!-- /entry --> ・投稿者の設定(コードは省略) ・コメントの設定(コードは省略) ・トラックバックの設定(コードは省略) </MTEntries> (内容は、タイトルがあり、その下に投稿日付が表示され、個別の本文がひとつ表示される、という形です。) と記入していますが、これだとトップページの様に全ての投稿が表示されてしまいます。 個別記事だけを表示させるには、違うムーバブルタイプのタグがあるのでしょうか? 初歩的な質問で大変申し訳ございませんが、どなた様か宜しくお願い致します。

  • Movable Type(ブログ記事)の日付の数字のフォントについて教

    Movable Type(ブログ記事)の日付の数字のフォントについて教えてください。 Movable Typeで、ブログ記事を作成し、再構築して別のトップページに表示させています。 その時、日付の数字がブログ以外の数字と明らかにフォントがちがうのですが、 どうしたら、同じになるのでしょうか? テンプレートでは、日付の表示は、<$mt:EntryDate$>と定義しています。 この定義自体で、フォントが決められているのでしょうか? お分かりになる方がいらっしゃいましたら、お教えください。 よろしくお願いします。

  • Wordpress 月別アーカイブのリスト表示について

    Wordpressについて質問させてください。 現在Wordpressでサイトを作成中なのですが、特定のカテゴリだけの月別アーカイブのリストを出す方法がわかりません。 <li>2009年9月</li> <li>2009年10月</li> ↑これを特定カテゴリだけでやりたいのです。 サイドバーウィジェットの月別アーカイブだと、カテゴリは関係なくすべての投稿の月別アーカイブとして表示されてしまいます。 テンプレートタグを調べてみてもどうやらカテゴリを指定することはできないようですし・・・。 どなたかこの問題の解決法をご存知の方がいらっしゃいましたらご教授ください。よろしくお願いします。

  • MT4.2「カスタムフィールドの値で並べ替え」をカテゴリページで使用したい

    Movable Type4.22をローカル環境で使用しています。 Movable Type ブログ の「カスタムフィールドの値で並べ替えやフィルタリングする」 http://www.movabletype.jp/blog/filtering_sorting_based_on_a_customfield.html を参考に「カスタムフィールドの値を利用した項目の並べ替え」を行いました。 インデックステンプレート(メインページ)だと、並べ替えが成功しますが、 アーカイブテンプレート(カテゴリタイプでのブログ記事リスト)だと並べ替えが行われません。 アーカイブテンプレート(カテゴリタイプでのブログ記事リスト)だとこの方法は利用できないのでしょうか。 試しに「MTEntries sort_by="field:customfieldbasename"」を 「MTEntries sort_by="title"」に変更するとタイトル順で並べ替えられるので、 記述する場所が悪い訳ではないと思うのですが…。 ※実際は、ふりがなでソートするようになっていて <MTEntries sort_by="field:kana"> ... </MTEntries> と記述しています。 やりたい事は、 記事のタイトルが漢字で、カスタムフィールドにそのフリガナを保存。 カテゴリをクリックすると、記事のタイトル一覧が表示されるが、 その時、それをフリガナ順でソートして表示したい。 です。 良い方法はありますか。 (記事の概要の箇所にフリガナを入力し、sort_by="excerpt"で並べ替える方法以外で)

  • Movable Typeのタグの意味が分からない・・・・

    コミュニティ掲示板でブログを新規作成しました。 「ブログ記事リスト」テンプレートの中の、下記の部分について質問です。 <mt:SetVarBlock name="content_header_title"><$mt:ArchiveTitle$></mt:SetVarBlock> ⇒ここは、content_header_titleという変数を定義し、<$mt:ArchiveTitle$>を値として代入しているということで間違いないでしょうか? <$mt:Include module="コンテンツヘッダー" content_header_title="$content_header_title" content_header_class="archive-title"$> ⇒ここの、content_header_titleや、content_header_class が何者なのかが全く分かりません。 予想では、コンテンツヘッダーというモジュールの中でcontent_header_titleや、content_header_classという変数を使うが、そのときの値を指定している、ということでしょうか?(その割にはarchive-titleが「ブログ記事リスト」の中で定義されていませんが・・・ 誰かお助けください!

専門家に質問してみよう