てことで、その2です。
その1を知らないと意味が無いので、未読の方はその1を先にご覧下さい。
では、肝心のカスタマイズ記事については、続きをご覧下さいな。
#動作確認バージョン(MySQL前提)
MT4.01、4.1
#関連記事
投稿日○時間後に更新されたエントリーを更新日の降順に表示するカスタマイズ。(その1)
投稿日○時間後に更新されたエントリーを更新日の降順に表示するカスタマイズ。(その2)
3.MT4での公開日
phpMyAdminで"mt_entry"テーブルを確認すると、"entry_created_on"には下書き作成日が入ってました。
それとは別途に"entry_authored_on"なるモノがあり、ここには公開日らしき値が入ってました。
よく分からなかったのでネットで検索すると、下記のサイトにて紹介されていました。
#from The blog of H.Fujimoto
Movable Type 4のエントリーの日付の管理方法
書いてある内容から、各項目に値が入る(更新される)タイミングが分かります。
・entry_created_on
エントリーを下書きとして保存した日時
エントリーを公開した日時(下書き保存しない)
・entry_modified_on
エントリーを更新した日時
・entry_authored_on
エントリー(下書き保存したモノ)を公開した日時
エントリーを公開した日時(下書き保存しない)
もっと具体的に例を挙げましょうか。
1月1日に下書き保存しました。1月2日に公開しました。1月3日に公開しました。
この場合、各項目に最終的に入る値は、下記になります。
・entry_created_on
1月1日
・entry_modified_on
1月3日
・entry_authored_on
1月2日
よって、先ほどのSQL発行分では、下書き日と更新日を比較していたわけです。
なので、公開日と更新日を比較するように修正しましょう。
まぁ、"entry_created_on"を"entry_authored_on"にするだけですがね。
修正箇所を茶色にしておきましたので、2.の時と比べてみて下さいな。
<ul>
<MTSQLEntries query="
SELECT
entry_id
FROM
mt_entry
WHERE
entry_blog_id = <MTBlogID> AND
(current_date - INTERVAL 1 MONTH) < entry_modified_on AND
entry_modified_on > (entry_authored_on + INTERVAL 1 DAY)
ORDER BY
entry_modified_on DESC" default="no entries">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a> <$MTEntryModifiedDate format="%m/%d"$></li>
</MTSQLEntries>
</ul>
これで、重いとおりの結果を更新エントリー一覧に表示させることができました。
できた結果は、左側サイドメニューの"Update Entries"になります。
他にもSQLを利用したことはできると思うので、分かる方はいろいろ試してみましょう。
ただし、副問い合わせをする場合には、注意して下さい。
何せ、MySQLのバージョン4.1以降じゃないと副問い合わせできないらしいので。
そして、2008年1月27日23時現在、XSERVERのMySQLバージョンは、4.0.27でしたから。
・・・副問い合わせできねぇ。orz
なお蛇足ですが、MT3の場合ですと"entry_created_on"のまま(修正前)で構わないハズです。
先ほどの例をまだ提示しますね。
1月1日に下書き保存しました。1月2日に公開しました。1月3日に公開しました。
この場合、各項目に最終的に入る値は、下記になるからです、多分。(^^A
・entry_created_on
1月1日→1月2日
・entry_modified_on
1月3日
≪ 続きを隠す
コメント
Fear ウルフが負担したの?
Posted by: BlogPetのはむはむ | 2008年1月29日 10:52
☆はむはむ
そうそう、俺が幼女の請負金額の負担をしてなぁ・・・って、そんなわけあるかっ!
Posted by: Fear ウルフ | 2008年1月30日 01:26