人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Movabletypeで今週の記事を一覧表示したいです。

仮に本日が水曜日だったとしても、

日曜
- エントリータイトル1(投稿が日曜)
- エントリータイトル2(投稿が日曜)

月曜
- エントリータイトル1(投稿が月曜)
- エントリータイトル2(投稿が月曜)

・・・

土曜
- エントリータイトル1

、、、のように今週の投稿記事が一覧で表示されるようにしたいです。
毎日再構築の必要はあると思いますが、何か方法があるでしょうか。

●質問者: ナカシマ
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rouge_2008
●200ポイント ベストアンサー

「デザイン」→「ウィジェット」にアクセスして、「ウィジェットテンプレートの作成」をクリックして、適当な名前で次のコードを保存します。

・ブログに表示するウィジェットを作成する場合

<mt:If tag="BlogEntryCount">
<mt:SetVarBlock name="today"><$mt:Date format="%w"$></mt:SetVarBlock>
<mt:If test="$today == 0">
 <mt:Setvar name="day" value="1">
<MTElseIf test="$today == 1">
 <mt:Setvar name="day" value="2">
<MTElseIf test="$today == 2">
 <mt:Setvar name="day" value="3">
<MTElseIf test="$today == 3">
 <mt:Setvar name="day" value="4">
<MTElseIf test="$today == 4">
 <mt:Setvar name="day" value="5">
<MTElseIf test="$today == 5">
 <mt:Setvar name="day" value="6">
<MTElseIf test="$today == 6">
 <mt:Setvar name="day" value="7">
</mt:If>
 <mt:Entries days="$day">
 <mt:EntriesHeader>
<div class="widget-weekly-entries widget">
 <h3 class="widget-header">今週の投稿</h3>
 <div class="widget-content">
 <ul>
 </mt:EntriesHeader>
 <li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li>
 <mt:EntriesFooter>
 </ul>
 </div>
</div>
 </mt:EntriesFooter>
 </mt:Entries>
</mt:If>


・サイトに表示するウィジェットを作成する場合

<mt:If tag="BlogEntryCount" include_blogs="children">
<mt:SetVarBlock name="today"><$mt:Date format="%w"$></mt:SetVarBlock>
<mt:If test="$today == 0">
 <mt:Setvar name="day" value="1">
<MTElseIf test="$today == 1">
 <mt:Setvar name="day" value="2">
<MTElseIf test="$today == 2">
 <mt:Setvar name="day" value="3">
<MTElseIf test="$today == 3">
 <mt:Setvar name="day" value="4">
<MTElseIf test="$today == 4">
 <mt:Setvar name="day" value="5">
<MTElseIf test="$today == 5">
 <mt:Setvar name="day" value="6">
<MTElseIf test="$today == 6">
 <mt:Setvar name="day" value="7">
</mt:If>
 <mt:Entries days="$day" include_blogs="children">
 <mt:EntriesHeader>
<div class="widget-weekly-entries widget">
 <h3 class="widget-header">今週の投稿</h3>
 <div class="widget-content">
 <ul>
 </mt:EntriesHeader>
 <li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li>
 <mt:EntriesFooter>
 </ul>
 </div>
</div>
 </mt:EntriesFooter>
 </mt:Entries>
</mt:If>


※クラス名は利用中のテーマに合わせて変更してください。
※新規にウィジェットセットを作成しても、既存のウィジェットセットに追加しても、どちらでも大丈夫です。


・新規にウィジェットセットを作成する場合
1.「デザイン」→「ウィジェット」にアクセスして、「ウィジェットセットの作成」をクリックし、ウィジェットセット名を入力します。
2.「利用可能」の一覧から「インストール済み」に作成したウィジェットテンプレートをドラッグ&ドロップで移動します。
3.「変更を保存」をクリックして保存します。
4.「デザイン」→「テンプレート」にアクセスして、編集したいテンプレートをクリックし、表示したい箇所に次の記述を追加して保存します。

 <$mt:WidgetSet name="作成したウィジェットセット名"$>

5.「再構築」を実行します。(※以降は記事の作成・更新時に再構築されます。)

※既存のウィジェットセットに追加する場合は、「デザイン」→「ウィジェット」にアクセスして、編集したいウィジェットセットをクリックしてから、2と3の手順を実行します。
※特定のページだけに表示する場合は、新規にウィジェットセットを作成した方が良さそうです。


なお、未来の日付で「公開」にして保存した場合も表示されてしまいますので、未来の記事は「日時指定」あるいは「未公開(原稿)」にしてください。


【追記】

テンプレートを再構築した日時を基準にしてしまいましたので、毎日再構築する必要があります。
毎日記事を書くのでしたら問題ないのですが、再構築方法を調べていますのでしばらく待ってください。m(__)m

再構築の方法をこの回答にコメントで返信しました。
よく考えたら、毎日ではなく1週間に1回、日曜日に実行するだけで大丈夫そうです・・・
それ以外は記事の投稿時に再構築されますし、記事を書かなかった日は変更がないので問題ないように思います。
回答の訂正やコメント返信を複数回行っていますが、メール通知が何回も届いていたら申し訳ありません。


rouge_2008さんのコメント
お待たせしました。MTの再構築方法です。 mt-rebuild.plをcronで毎日実行するようにしてみてください。 「mt-rebuild」 http://appnel.com/code/mt-rebuild (※ダウンロードするには、TypePadにログインする必要があります。) ・ドキュメント http://appnel.com/kb/devtools/mt-rebuild ・ブログID2のサイトをすべて再構築する場合 >|| mt-rebuild.pl -mode="all" -blog_id=2 ||< ※mt-rebuild.plをMTを設置したルートディレクトリにアップロードして、上記をシェルから実行して動作を確認します。 ※事前にmt-rebuild.plのPerlのパスを確認し、必要があれば変更して置きます。 ※サイトに対応させる為には、67行目を次のように変更します。 >|| my $iter = MT::Blog->load_iter({ class => '*' }); ||< その他、cronでの実行に関する事は次の記事で確認してください。 http://www.rainorshine.asia/2011/11/09/post2180.html

ナカシマさんのコメント
わ〜、こんなご丁寧にありがとうございます! ちょっと試してみます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ