top

<MTEntries>で全件出力する方法 MT4版

<MTEntries>は最もよく使う基本タグの1つですが、インデックステンプレートでは出力記事数がブログの設定で決められた数になります。通常はそれでかまわないし、そういう使い方をするタグなのですが、時々<MTEntries>タグで全件出力させたくなることがあります。例えば。

  • <MTArchiveList>の代わりに使いたい場合。<MTArchiveList>はエントリーを全件出力させてくれるタグですが、使えるアトリビュートが少なく、更新順やタイトル・概要などで並べ替えることができません。それをやりたい場合は<MTEntries>を使う必要が出てきます。
  • GoogleなどSitemapを作る場合。私は作ってないですが、<MTEntries>で全件出力させることになってるようです。
  • 更新順リストを作るためにエントリー全件の中で並べ替えをする必要がある場合。こちらのケースとか。などなど。

そういう時に一般的に使われてきたのが<MTEntries lastn="9999">など記事全件より大きな数字を指定して強引に全件出力させる方法。他に<MTEntries lastn="0">とか<MTEntries all="1">とかハック的な方法もいろいろ伝わっているようです。
別にそれでもいいんですが、ハック的な方法は先の保障がなく、MTのバージョンアップや仕様変更でいつ使えなくなるか分からないという不安があるし、lastn="9999"は正規な方法とは言え、その強引さに微妙な落ち着かなさがあったり。

そこでMT4ならではの方法。<MTEntries lastn="ブログの全記事数">でエントリー数をピッタリ指定して気持ちよくおさまってみましょう~。

<MTSetVarBlock name="ecount"><$MTBlogEntryCount$></MTSetVarBlock>
<MTEntries lastn="$ecount">
  ・・・・
</MTEntries>

これで<MTEntries>で全件出力できます。<MTSetVarBlock>って使い方を知ると実に便利なタグですね。

応用:カテゴリーで全件出力させる
<$MTBlogEntryCount$>を<$MTCategoryCount$>に変えれば、4.0で仕様変更されたカテゴリーアーカイブでも全件出力OK。

<MTSetVarBlock name="catcount"><$MTCategoryCount$></MTSetVarBlock>
<MTEntries lastn="$catcount">
  ・・・・
</MTEntries>

正式サポートされたMTタグの使い方なので、ハック的な方法よりおすすめかもしれません。
小ネタですが、こんな方法もありますよってことで。

 

コメント

taekoさん、こんばんわ。

実は、私もmt4を新規にインストールしてみたのですが、管理画面が一新されていて、なんとも使いづらくて。。。。あと、自作のテンプレートがうまく反映されないようで(イジり過ぎ?苦笑)
アカウントが3つあるので、ひとつを3.35からバージョンアップしてみたのですが、それもうまくいかなくて、ほとほと疲れ果ててしまいました。笑

一生3.35で行くことにしました。大袈裟?(*^_^*)
taekoさんに教えていただいて、ページ分割もできているので、このままで行こうと思っています。また3.35に於いてのくだらない素人の質問をさせていただくこともあるかと思いますが、どうぞヨロシクお願いします。

こんにちは。
MT4の管理画面は慣れですね(^^;。アーカイブマッピングは使いやすくなったように思います。

>自作のテンプレートが上手く反映されない
具体的にどの辺が上手くいかなくてどのようなエラーが出たのでしょうか? エラーは対応してないプラグインくらいしか思いつかないですが…。
3.35からのバージョンアップもどの辺が上手くいきませんでしたか?

ダイナミックのバグを直したい一心でMT4のベータテストに参加して頑張ってきたので、これからは4.0の新しい魅力を伝えていけるブログにできたらいいなと思ってます。でも3.35も忘れないようにしたいと思います(^^;。これからもよろしくお願いします。

ご丁寧にコメントありがとうございます。
4.0にバージョンアップしたのですが、何故かエラーが出て、管理画面に入れず、3.35に戻したのですが、時すでに遅し。。。書き込みは、できるのですが、「ブログを持っていません」と言うmt.cgiになってしまって、テンプレートが表示されなくなってしまったのです。。。苦笑
多分、3.35で作成されていたデータがすでに4.0のデータ構造にアップグレードされてしまったようなのでした。とほほ。
一度アップグレードしてしまうと、データベースをダウングレードすることができないため、blogのアプリケーションと別にフォルダを作って3.35を復活させたと言うわけでした。なんか疲れてしまったので、とりあえずこのままでやろうと思ってはいるのですが、4.0への魅力も捨てがたく・・・・

また困ったら、ご相談させてくださいね。ココで愚痴ってしまって、ごめんなさい(-_-;)

それは大変でしたね…。
サイト拝見させていただきましたが新規でなら入れることも出来ているのですね?

アップグレードでは管理画面にいったんは入れたが、その後エラーが出て入れなくなったのでしょうか。それともデータベースのアップグレード時にエラーが出て1回も管理画面を拝めずだったのでしょうか。
エラーが出た時はエラー内容をよく読んでみるといいかもしれません。たいがいはエラー文の中に何が原因でどこを直せばいいのか答が書いてありますので。それでも分からない場合はエラー文で検索してみるといいです。対処した人のブログが見つかることがあります。

面倒ですが、新規で入れた4.0にテンプレをコピペ&データインポートで移行する方法もあります(うちはデータベースを一新したかったのでそれでやりましたがブログが3つあったため2日間かかったです^^;)。

私でお役に立てることでしたらお答しますので、いつでも遠慮なくいらして下さいねー。