仮に本日が水曜日だったとしても、
日曜
- エントリータイトル1(投稿が日曜)
- エントリータイトル2(投稿が日曜)
月曜
- エントリータイトル1(投稿が月曜)
- エントリータイトル2(投稿が月曜)
・・・
土曜
- エントリータイトル1
、、、のように今週の投稿記事が一覧で表示されるようにしたいです。
毎日再構築の必要はあると思いますが、何か方法があるでしょうか。
「デザイン」→「ウィジェット」にアクセスして、「ウィジェットテンプレートの作成」をクリックして、適当な名前で次のコードを保存します。
・ブログに表示するウィジェットを作成する場合
<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回、日曜日に実行するだけで大丈夫そうです・・・
それ以外は記事の投稿時に再構築されますし、記事を書かなかった日は変更がないので問題ないように思います。
回答の訂正やコメント返信を複数回行っていますが、メール通知が何回も届いていたら申し訳ありません。
お待たせしました。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をMTを設置したルートディレクトリにアップロードして、上記をシェルから実行して動作を確認します。
※事前にmt-rebuild.plのPerlのパスを確認し、必要があれば変更して置きます。
※サイトに対応させる為には、67行目を次のように変更します。
2012/08/23 22:58:39その他、cronでの実行に関する事は次の記事で確認してください。
http://www.rainorshine.asia/2011/11/09/post2180.html
わ~、こんなご丁寧にありがとうございます!
2012/08/24 10:00:13ちょっと試してみます。