本文へ
Crossbreedクロスブリード

ホーム / ネット文化 / 「このカテゴリの最新記事一覧」を表示するプラグイン「MTTagInv

Movable Type

「このカテゴリの最新記事一覧」を表示するプラグイン「MTTagInvoke」

以前からずっと設置したくてできなかった、個別ページにおける、そのカテゴリの最新記事一覧。

やり方としては、

で行けそうなカンジはするのですが、どうやらこの「category」属性は変数を受け付けないらしいです。何度やっても同カテゴリが表示されない。というわけで、ずっと諦めてました。

で、どうやら新しいカテゴリアーカイブのテンプレートを作成したら上手くいくらしい、という事を聞きつけて、やってみた。結果的には上手く行ったのだが、なんともスマートじゃない。

というわけで、ぐぐった結果、::: CROQU ::: : 「This Category Entries (easy)」さんの所で素晴しいプラグインをハケーン、即導入となりましたので、解説しようと思います。以下、先の「スマートじゃない」方法と合わせて解説しますです。

スポンサードリンク

プラグイン使用の方法

なぜ、プラグインを使用してまでしないと実現できないかは上に書いたとおりです。残念ながら現状のmovabletypeでは実現できません。

そこで便利なプラグインの登場です。このMTTagInvokeというプラグインは簡単に言うと、category等の属性に変数を使えるようにするプラグインなのです。

これで個別ページ(Indivisual archives)の属するカテゴリの一覧を抜き出せるという事になります。面倒ですね。

■MTTagInvoke 0.9

↑ここでプラグインをダウンロード、解凍します。

MTTagInvoke.pl

というファイルが生成されるのでMTのpluginフォルダに入れます。

次に、個別ページのテンプレートに以下の文を加えます。

これで、個別ページにおける、「このカテゴリの最新6つの記事」が実現できました。一体これはどういうことなのか?

少しだけ解説します。

MTTagInvoke

tagnameで指定したMTタグで有効です、ということ。この場合、MTEntriesというタグに関することだということを宣言するだけでなく、実際にはとしなくてならない部分の記述も不要になる。便利!

MTTagAttrivute

nameで指定したアトリビュート(変数)がMTタグに置き換わる。

ここでは categoryの変数にMTEntryCategoryを代入しなさい、ということ。つまり個別ページのカテゴリを随時代入することができるのです。すげえ。
同様にlastnも5を代入です。MTもこれがデフォで出来ると便利なのにね。

MTTagContent

上記宣言を元に、実際に表示させたい部分にこのタグを使います。

上でも書いた通り、MTEntries等のタグも必要ありません。この辺がこのプラグインの凄いところですね。

プラグイン未使用の方法

プラグインに頼りたくないアナタにうってつけの方法があります。しかしスマートじゃない。何故この方法がスマートじゃないのか、それは新しいテンプレートを作成しなくてはならないところなのです。

「最新記事」ということは、エントリ投稿毎に生成されるわけですので、ただでさえ重たいMTのリビルドにも影響します。よって、ただでさえ重たい当サイト等はこの方法を絶対にとるべきではなかったのです。

では、その方法を。

1.php化

MTをphp化してない方はコチラ↓のエントリを見てphp化を行いましょう。

■MTのPHP化とページ分割

インクルード、というファイルの埋め込みを行わなくてはならない為のphp化です。やっておいて損はありません。

2.新しいテンプレの作成

MTの管理画面に行き、

テンプレート⇒新しいアーカイブテンプレートを作る

テンプレートの名前⇒CategoryRecentEntry(テキトー)
このテンプレートにリンクするファイル⇒空欄

テンプレートの中身は↓このように。

アーカイブの設定

新しいアーカイブテンプレートの設定をしないといけませんね。

ウェブログの設定⇒アーカイブの設定

で、よく見ると、カテゴリーのセクションに先のCategoryRecentEntryが増えているはずですので、アーカイブ・ファイルのテンプレートのところに、

inc/cr_.php

と書きます。これはあくまでも一例です。incというフォルダの中にファイルを生成するなら↑のように書きます。これは好みで。inc/はなくても構いません。

そして保存、です。

リビルド

いよいよリビルドです。ドキドキですね。エラーがでたら、最初からやり直しです。泣きながら再度チャレンジしてみて下さい。

設置

ここで、実際の個別ページ(indivisual archives)に設置します。ここで、phpのインクルードを利用するのです。

テンプレートモジュール化を施したことがある方はすんなりいくでしょう。

先ほどのcr_(カテゴリ).phpというファイルを本ファイルに貼り付けてやりましょう

include "(パス)/inc/cr_.php"; ?>

これだけです。phpサイコーですね。モジュール化サイコーですね。

まとめ

こんなことをしないと、思ったことができないのかムーバブルタイプは!とお怒りの方も大勢いらっしゃることと思います。

しかし、このカスタマイズこそ、movabletypeの醍醐味なのです。面倒くさいのがイヤな方はホスティ系のweblogがありますので、そちらでやるべきです。
チマチマ弄ってちゃんと思い通りになったときの爽快感はたまりませんんよ(笑

ブログにおいて、一見さんが一番訪れる可能性が高い個別ページ。そこから次なるサイト内ページを閲覧していただく為に、必要不可欠な別ページ(トップページ含む)へのリンク。
これをいかに上手く配置するかが、ブログのページ作成の重要な課題だと、僕は思うのですよ。
以下、サイト内関連ページ

■MTのPHP化とページ分割
■あなたのmovabletype、重たくないですか?(テンプレートモジュール化)

スポンサードリンク

※このサイトはさくらインターネットのサーバを利用しています。

■gi(ギィー)福岡浄水通りの絣(かすり)と手作り雑貨のセレクトショップ
↑サイト内紹介記事
【PR】BTOパソコンの先駆者 FRONTIER

読者のコメント13件

記事が公開された当時に寄せられたものを、そのまま残しています。受付は終了しました。

  1. NEC花子

    なるほど・・・MTEntriesの要素に変数を使えると言うのはかなり便利ですね・・・今度使ってみることにします。紹介ありがとうございます。

    ちなみに個別記事において、「このカテゴリの前後の記事」を表示するプラグイン「PreviousNextInCategory」なんてものもあります。
    もうご存知でしたら申し訳ありませんが、ご参考までにどうぞ。
    続編モノの記事を個別ページで順番に読ませたいときなど便利ですよ!

  2. 管理人ayu

    >NEC花子さん
    「このカテゴリの前後の記事」は使ってみたかったのですが、ウチでそれやってしまうとごちゃごちゃになりすぎてしまいそうで(笑
    確かに続編モノには良さそうですねえ。あとは配置の問題ですね。

    情報いつもありがとです!

  3. tony_and_c

    ずばり
    >続編モノの記事を個別ページで順番に読ませたいとき
    これなんですが、

    MTTagInvokeで個別ページ(Indivisual archives)の属するカテゴリの一覧を抜き出せたまではいけましたが、
    sort_order="ascend"を使っても古い順になりません。
    具体的には

    100

    ">

    こうしているのですが、新しい順に表示されてしまいます(ちなみに、上のURLとは別のサイトです。)
    どうすればいいのか分かりません。助けてください。助けてください。

  4. tony_and_c

    あ、消えてる。こうです。。。<MTTagContent sort_order="ascend">

  5. 管理人ayu

    >tony_and_cさん
    それはPreviousNextInCategoryのことじゃないでしょうか?
    ページ毎に順番を変えるのとはちょっと違うかと思います。

  6. tony_and_c

    PreviousNextInCategoryは「前後のエントリー」の場合ですよね。
    じゃなくて、

    1/2同一カテゴリの記事
    1/3同一カテゴリの記事
    1/4同一カテゴリの記事
    1/5同一カテゴリの記事
    ってな感じにしたいんです。

    MTTagInvokeを入れただけでは
    1/5同一カテゴリの記事
    1/4同一カテゴリの記事
    1/3同一カテゴリの記事
    1/2同一カテゴリの記事
    になって「ネタばれ」してしまい困ってます。

  7. hachiko

    はじめまして。
    こちらの記事を参考にさせていただいて、導入することができたのですが
    新しいエントリを投稿した場合、その記事だけはいいのですが
    同じカテゴリの他の個別記事は、再構築しないと新しいエントリが反映されません。
    これは私の設定ミスなのでしょうか。
    それともそういうものなのでしょうか。
    同一カテゴリの個別ページをまとめて再構築するツールや
    自動で再構築するツールがあると便利だと思うのですが
    検索してもなかなか探しあてられません。
    もしご存知でしたら教えていただけないでしょうか。
    どうぞよろしくお願いします。

  8. あか

    どうも。
    助かりました。

    個別ページにカテゴリ一覧表示したかったので、、、

    とりあえず、お礼まで。

  9. kujira

    本当に助かりました!自分では3冊のMTの本を見ながら、1日中試行錯誤しても跳ね返され続けた壁だったのですが、プラグインであっさり解決しました!重ね重ねになりますが、ありがとうございました!

  10. HIRO

    はじめまして。
    このプラグインは便利ですね。
    どうやってやるのか、自分でタグをいじったりして出来ないなぁと思ってた所に、調べたらあっさり答えがありました(笑)。

    どうもありがとうございました。

  11. masa

    おー!解決しました。ありがとう!
    書籍で、そのプラグイン知って試してみたけど、エラーで・・・。
    まさか、I だったとは・・・l (エル)と打ってました(苦笑)。冷静に前後を見ることは大切ですね(しみじみ)

  12. pon

    tony_and_cさんへ

    <MTTagInvoke tag_name="MTEntries"sort_order="ascend">←半角に直してください。
    にすると実現できますよ。おそらくtony_and_cさんの言いたいことはこういうことだと・・・。

  13. 紫

    これこれ!これがやりたかったのです私!
    ほんとーにありがとうございました。って、今からやって見ます。
     私はページの上部にこちらのサイトのようなタブインデックスを作りたいと思ってこの機能を調べていました。
    このページのタブインデックス、とってもステキですね。コード、教えてくださぁい。
    また、やって見て、ご報告に来ますね。
    それと、リンク貼らせてください。