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


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

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

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

・・・

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

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

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/08/28 17:55:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:rouge_2008 No.1

回答回数595ベストアンサー獲得回数351

ポイント200pt

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

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

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

id: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

2012/08/23 22:58:39
id:kanakogi

わ~、こんなご丁寧にありがとうございます!
ちょっと試してみます。

2012/08/24 10:00:13
  • id:rouge_2008
    今週の記事一覧をどこに表示したいのでしょうか?
    水曜日なら日~水曜日まで、金曜日なら日~金曜日までの記事一覧が表示されればいいのですね?
    再構築に関しては、記事を書いた時に行われますので、別途再構築の必要はないと思います。
  • id:kanakogi
    質問が分くくて申し訳ございません。
    表示としてはウィジェットで"今週の投稿"のように表示したいです。

    > 水曜日なら日~水曜日まで、金曜日なら日~金曜日までの記事一覧が表示
    その通りです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません