- 2006-09-21 (木) 23:50
- MovableType


- エントリーを更新順にソート
[MovableType備忘録: エントリを更新された順にソートする:2006/09/21 23:21:02]エントリを最終更新日順にソートできたらいいと思ったことありませんか こんなこと思うのもわたしだけなのかなぁ汗 例えば、既に投稿済みのエントリに対して追記などを追加しても、「●●更新しました…」みたいに明示してあげないと、せっかく追記などしても過去に埋もれたままですよね。 そんな時、新規エントリ+更新エントリを最終更新日順にソートできると、過去の記事も前面にアピールできるわけです。
最近 mixiで、同じような事をおっしゃってる方がいました。そういえば、bzbellさんがそんな事言っていたなぁと思いだして、エントリーを追いかけてみたのですが、どうやらプラグイン(MT Extensions: Global Listings 2.0.2)が古いままで問題があるようでした。
確かMTCollateでどうにかしてるよ、というのを聞いていたと思ったのですが、その後MT Extensions: MTCollate 1.1使ってのエントリー書かれてないみたいなんで、ちょうどMTCollateづいてるついでに、自分で試してみました。
とりあえず、インデックステンプレートで試しましたが、他でも問題ないと思います。
[追記:2006年9月22日 9:03:12]
ミスに気づいたんで一部修正。テンプレートはデフォルトのメインページ部分を元に、MT3.2でも大丈夫なようにエントリータグ部分を省いてあります。お好きなように修正してください。
<MTEntries>から</MTEntries>までの間を、以下と入れ替えて下さい。
<MTCollateCollect><MTEntries><MTCollateRecord><MTCollateSetField name="entry_title"><$MTEntryTitle$></MTCollateSetField><MTCollateSetField name="entry_body"><$MTEntryBody$></MTCollateSetField><MTCollateSetField name="entry_more"><$EntryMore$></MTCollateSetField><MTCollateSetField name="entry_id"><$MTEntryID$></MTCollateSetField><MTCollateSetField name="entry_link"><$MTEntryPermalink$></MTCollateSetField><MTCollateSetField name="entry_authorlink"><$MTEntryAuthorLink show_email="0"$></MTCollateSetField><MTCollateSetField name="entry_trackback_data"><$MTEntryTrackbackData$></MTCollateSetField><MTCollateSetField name="entry_date"><$MTEntryDate format="%m-%d"$></MTCollateSetField><MTCollateSetField name="entry_time"><$MTEntryDate format="%H:%M"$></MTCollateSetField><MTCollateSetField name="entry_modified"><$MTEntryModifiedDate format="%m/%d %H:%M"$></MTCollateSetField><MTCollateSetField name="entry_comment_count"><$MTEntryCommentCount$></MTCollateSetField><MTCollateSetField name="entry_trackback_count"><$MTEntryTrackbackCount$></MTCollateSetField><MTCollateSetField name="entry_sort"><$MTEntryModifiedDate format="%Y%m%d%H%M%S"$></MTCollateSetField></MTCollateRecord></MTEntries></MTCollateCollect><MTCollateList limit="5" sort="entry_sort:#:-"><$MTCollateField name="entry_trackback_data"$><h2 class="date-header"><$MTCollateField name="entry_date"$></h2><div class="entry" id="entry-<$MTCollateField name="entry_id"$>"><h3 class="entry-header"><a href="<$MTCollateField name="entry_link"$>"><$MTCollateField name="entry_title"$></a></h3><div class="entry-content"><div class="entry-body"><$MTCollateField name="entry_body"$><p class="entry-more-link"><a href="<$MTCollateField name="entry_link"$>#more">続きを読む "<$MTCollateField name="entry_title"$>" »</a></p></div></div><p class="entry-footer"><span class="post-footers">投稿者: <$MTCollateField name="entry_authorlink"$> 日時: <$MTCollateField name="entry_time"$> 更新: <$MTCollateField name="entry_modified"$></span><span class="separator">|</span> <a class="permalink" href="<$MTCollateField name="entry_link"$>">パーマリンク</a><MTIfCommentsActive>| <a href="<$MTCollateField name="entry_link"$>#comments">コメント (<$MTCollateField name="entry_comment_count"$>)</a></MTIfCommentsActive><MTIfPingsActive>| <a href="<$MTCollateField name="entry_link"$>#trackback">トラックバック (<$MTCollateField name="entry_trackback_count"$>)</a></MTIfPingsActive></p></div></MTCollateList>MTCollateプラグインの説明は省きます。ソートの為のオプションが豊富で、使いこなせるとずいぶん便利です。
上のコードはソートの基準にずいぶん強引な処理しています。日付として比較するオプションもあるようなので、そうすればもう少しスマートなタグになると思います。
- Newer >: 「MovableType備忘録: ブログ内検索を高速化」をEUC化する
- < Older: RORという言葉
Trackback:(1)
- TrackBack URL for this entry.(1)
- Listed below are links to weblogs that reference
- エントリーを更新順にソート from WolaWola
-
「最近更新されたエントリーを表示するためのアトリビュート(失敗作)」 from のぶろぐ 2006-11-08 (水) 12:36:12
-
何を調べていたのかは忘れてしまったのだが、何故か気になった記事があった。 Mov...
[詳しくはトラックバック元サイトで]
Comments:(6)
-
said
September 22, 2006 7:46 AM
|
ReplyThis!
こんにちわ^^
先日遊びに来たら接続できなくて…その後何度来てもエラったのでもしかして店じまいしてしまったのかと思ってました( ̄∇ ̄;)
復旧してなによりです♪わたしさっそくやってみます!!
-
-
replied for
bzbell's comment
September 22, 2006 8:14 AM
|
ReplyThis!
こんにちは、bzbellさん。
>先日遊びに来たら接続できなくて…その後何度来てもエラったのでもしかして店じまいしてしまったのかと思ってました( ̄∇ ̄;)
そうなんですよ、サーバー自体は動いてたんですが、公開がうまくいってなかったみたいです。って犯人は私なんですが・・・上のテンプレートは結構力技なので、上手にまとめてくださいね。
最初日付を数字として並べ変えようとしてたのに、気付かなくてハマってました。今気づいたけどlimitの値を全角で囲んでる。だから有効にならないのか・・・(はずかし・・・)
それと、CommentCountなどの値がゼロの時には、NULLになっちゃうのも良く解ってません。強制的に数字として扱うオプションってありましたっけ?
-
-
said
September 22, 2006 12:11 PM
|
ReplyThis!
> 強制的に数字として扱うオプションってありましたっけ?
う~ん(つω-`。)…記憶にないです。
でもNULLになる原因は、MTCollateListで
sort="entry_comment_count:#:- entry_trackback_count:#:-"
のように指定してないからではないでしょうか(>∀< )
そそ、前回TRYしたGlobal Listingsプラグインでもそうだったのですが、エントリ更新といってもいろいろ理由がありまして( ̄∇ ̄;)たとえば、誤字脱字による更新、追記による更新…etcありますよね。
このケースだと誤字脱字による更新エントリについてアピールする必要がないと思うんで対象外としたいんです( ̄∇ ̄)bここら辺も考慮してなんとかできないかなぁ…とずっと考えてました。
帰ったらいろいろ試してみます( ̄∇ ̄)/
-
-
replied for
bzbell's comment
September 22, 2006 2:38 PM
|
ReplyThis!
>MTCollateListで sort="entry_comment_count:#:- entry_trackback_count:#:-"
それは、値を数字としてソートし逆順に並べるであって、値を数字にするじゃないと思いますよ。
コメント数やトラックバック数でソートされちゃうし。最悪 IF ELSEでごまかせちゃうから、どうでもいいんですけどね。
>誤字脱字による更新
私はほとんどこれなんで、あんまりこの更新順って使う気が無かったんですよ。でも更新リストみたいなのはあってもいいかもって思い始めました。-
-
replied for
oscar's comment
September 22, 2006 4:10 PM
|
ReplyThis!
> それは、値を数字としてソートし逆順に並べるであって、値を数字にするじゃないと思いますよ。
え!?そうでしたっけ( ̄∇ ̄;)
> 最悪 IF ELSEでごまかせちゃうから、どうでもいいんですけどね。
以前使った時って普通に数値として扱われてたような気がしますけど…最新バージョンの不具合なんですかね。
> でも更新リストみたいなのはあってもいいかもって思い始めました。
絶対あると便利ですよ!!
新たにページ作ってアナウンスしてもいいんですけど…個人的にはそういうページって無駄な気がして(; ̄- ̄)
それに更新したページが前面に出るほうがユーザビリティ的にもいいと思ってます( ̄∇ ̄)b
ページ移動は極力少ないほうがいいって言われたので♪oscarさんもご存知ですが、公開済エントリを編集日で再投稿するで紹介した方法もあります。
けど、これだとページが新規作成されるので、新規投稿してるのと同じなんですよねぇ。わたしも誤字脱字多いのです(つω-`。)とほほ
今はCustomFieldsとかRightFieldsと併用してできないかなぁ…って考えてます…どうでしょ。
-
-
replied for
bzbell's comment
September 22, 2006 7:38 PM
|
ReplyThis!
>今はCustomFieldsとかRightFieldsと併用してできないかなぁ…って考えてます…どうでしょ。
あぁ、フィールド増やすんですね。なんか出来そうだ。
ついでに日付を修正するボタンをTransformerで追加したらベストですね。
それはいいかも・・・
-
-
-




スクリプトの読み込みが完了していません。
メールフォーム(Javascriptを使用していません)や、
Twitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。