Movable Type 備忘録
エントリを更新された順にソートする
- Next Page: エラーページをカスタマイズする
- Prev Page: エントリ内に組み込まれたURLを一括置換する
エントリを最終更新日順にソートできたらいいと思ったことありませんか。
こんなこと思うのもわたしだけなのかなぁ。
例えば、既に投稿済みのエントリに対して追記などを追加しても、「●●更新しました…」みたいに明示してあげないと、せっかく追記などしても過去に埋もれたままですよね。
そんな時、新規エントリ+更新エントリを最終更新日順にソートできると、過去の記事も前面にアピールできるわけです。
今回は、エントリを最終更新日順にソートするカスタマイズをやってみました。
エントリを最終更新日順でソートするには、Global Listingsプラグインと、IfModifiedプラグインを併用します。
Global Listingsプラグインは、MovableType(ムーバブルタイプ)で複数のブログを管理していた場合、各ブログのデータを取得できるプラグインです。
カンタンに言うと、複数のブログで投稿されたエントリや、コメント、トラックバックなどを1つのページでまとめて表示させることができます。す、すごい!!
1つのMovableType(ムーバブルタイプ)で複数のブログを管理している人にとってはすっごく重宝するプラグインだと思います。
IfModifiedプラグインは、「追記や修正などの更新があったエントリ」という条件を使えるようにするプラグインです。例えば、新規投稿時とか、追記などして更新した後で誤字などが見つかった場合、規定時間内は更新として扱わない…というような条件を付けられるプラグインです。
このIfModifiedプラグインがないと、わたしの場合大変なことになってしまいます。投稿した後で誤字脱字が見つかったなんて日常茶飯事的にあるので(; ̄∇ ̄A
今回参考にしたサイトは、drry+@->様と、Chitatopops様です。
▼Global Listingsプラグインの入手はこちらから▼
http://www.nonplus.net/software/mt/GlobalListings.htm
▼IfModifiedプラグインの入手はこちらから▼
http://www.staggernation.com/mtplugins/IfModified
カスタマイズ方法
まず、各プラグインをダウンロードします。
上記URLから各プラグインをダウンロードしてください。
次に、Global Listingsプラグインを修正します。
Global Listingsプラグインが既に最新のMovableType(ムーバブルタイプ)に対応しなくなってしまったようで、以下のような修正を行う必要があるとのことです。
245行目
EntryIfAllowComments => $e->allow_comments,
EntryIfCommentsOpen => $e->allow_comments && $e->allow_comments eq '1',
EntryIfAllowPings => $e->allow_pings,
239行目
MT::ConfigMgr->instance->NoPlacementCache(1) unless $e->blog_id == $blog_id;
my $allow_comments ||= 0;
my $out = $builder->build($ctx, $tok, {
224行目
local $ctx->{__stash}{entry} = $e;
local $ctx->{current_timestamp} = $e->created_on;
local $ctx->{modification_timestamp} = $e->modified_on;
my $this_day = substr $e->created_on, 0, 8;
74行目
EntryIfAllowComments => $_[0]->allow_comments,
EntryIfCommentsOpen => $_[0]->allow_comments && $_[0]->allow_comments eq '1',
EntryIfAllowPings => $_[0]->allow_pings,
青い字の部分をそれぞれ追加します。
追加したら保存して、各プラグインをサーバーにアップロードしてください。
アップロード先はいつもの mt/plugins/ ディレクトリの中です。
次に、テンプレートを修正します。
ここでは、最近のエントリ一覧を例にして説明します。
メインページの最近のエントリ一覧を以下のように差し替えます。
変更前
<ul>
<MTEntries lastn="10">
<li><a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
変更後
<ul>
<MTGlobalEntries include_blogs="8" lastn_modified="10" sort_by="modified_on">
<MTIfModified leeway="15">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTIfModified>
</MTGlobalEntries>
</ul>
青い字の部分は対象とするブログのブログIDを指定します。
複数のブログをまとめて一覧する場合には、ここで include_blogs="1,2,4" などと複数指定します。
また、<$MTBlogID$>タグは使用できませんでした。
直接ブログIDを指定してください。
赤い字の部分では表示するエントリ数( ここでは10件分 )を指定しています。
緑の字の部分は、15分以内の修正は更新として扱わない…という指定をしています。
修正したら、いつものように保存して再構築してください。
以上で、最近のエントリ一覧を最終更新日順にソートすることができました。 同じ要領で、エントリ本文を最終更新日順にソートして表示させることもできます。
SEE YOU ( ̄∇ ̄)/
Trackback Pings(5)
- from
movabletype
少数人数の会社に求められるスタッフの要素 Prototype.js を使って、MovableTypeで最新記事を表示する MovableTypeを自動的に...
- from
オラオラ
エントリを最終更新日順にソートできたらいいと思ったことありませんか こんなこと思うのもわたしだけなのかなぁ汗 例えば、既に投稿済みのエントリに対して追記な...
- from
のぶろぐ
何を調べていたのかは忘れてしまったのだが、何故か気になった記事があった。 Mov...
- from
MovableType備忘録
MovableType(ムーバブルタイプ)を使っている人の中には、複数のブログを運営している人も多いかと思います。 または、カテゴリをANNEX(別館)に...
- from
MovableType備忘録
以前、新規エントリと公開済みエントリを更新された順でソートするカスタマイズを紹介しました。 でもこのプラグインはかなり古いものだったので、MovableT...
Comments(0)
No comments found.


Post a Comment