MTテンプレートタグのlastnモディファイアとlimitモディファイアの違い

July 2,2015 1:55 AM
Category:[モディファイア]
Tag:[Modifier, MovableType]
Permalink

MTテンプレートタグのlastnモディファイアとlimitモディファイアの違いについて紹介します。

ちなみに2007年に公式サイトで分かりやすい記事が投稿されています。

1.lastnモディファイアとは

lastnは、最新の記事を抽出するときに利用するモディファイアで、値に表示したい件数を指定します。

次のように指定すれば、ブログ記事から最新の3件の記事タイトルを表示します。

<mt:Entries lastn="3">
  <$mt:EntryTitle$>
</mt:Entries>

2.limitモディファイアとは

limitは表示件数を指定するときに利用するモディファイアで、値に表示したい件数を指定します。

次のように指定すれば、ブログ記事から最新の3件の記事タイトルを表示します。

<mt:Entries limit="3">
  <$mt:EntryTitle$>
</mt:Entries>

なお、値にautoを設定した場合、管理画面の「設定」→「投稿」→「表示される記事数」の設定値が適用されます。

<mt:Entries limit="auto">
  <$mt:EntryTitle$>
</mt:Entries>

3.lastnモディファイアとlimitモディファイアと違い

1項および2項の説明より、テンプレートタグにlastnまたはlimitを設定するだけであれば動作に違いはありません。

違いが出るのは、他のモディファイアと組み合わせた場合です。

サンプルとして、

  • test5(2015/7/1)
  • test4(2015/6/1)
  • test3(2015/5/1)
  • test2(2015/4/1)
  • test1(2015/3/1)

という5つの記事があるとします(カッコ内は公開日)。

まず、1項のテンプレートにsort_order="ascend"を加えて実行します。

<mt:Entries sort_order="ascend" lastn="3">
  <$mt:EntryTitle$>
</mt:Entries>

実行結果は下記のとおりです。

test3
test4
test5

上記の結果になるのは、先にlastnモディファイアで最新3件の記事、

  • test5(2015/7/1)
  • test4(2015/6/1)
  • test3(2015/5/1)

を抽出し、そのあとでsort_orderを実行し、

  • test3(2015/5/1)
  • test4(2015/6/1)
  • test5(2015/7/1)

となるためです。

次に、2項のテンプレートにsort_order="ascend"を加えて実行します。

<mt:Entries sort_order="ascend" limit="3">
  <$mt:EntryTitle$>
</mt:Entries>

実行結果は下記のとおりです。

test1
test2
test3

上記の結果になるのは、先にsort_orderモディファイアで、

  • test1(2015/3/1)
  • test2(2015/4/1)
  • test3(2015/5/1)
  • test4(2015/6/1)
  • test5(2015/7/1)

という並び替えが行われ、そのあとlimitモディファイアで

  • test1(2015/3/1)
  • test2(2015/4/1)
  • test3(2015/5/1)

を抽出するためです。

4.まとめ

lastnとlimitの使い分けは下記のとおりです。

  • 最新のものを抽出してから加工したい:limitを使用
  • 加工してから最新のものを抽出したい:lastnを使用
  • 加工しないのであればどちらも同じ効果

なお、モディファイアは実行される順番に記載した方は間違いないと思いますので、lastnについては各モディファイアの先頭、

<mt:Entries lastn="3" sort_by="title" sort_order="ascend">
  <$mt:EntryTitle$>
</mt:Entries>

limitについては各モディファイアの最後、

<mt:Entries sort_by="title" sort_order="ascend" limit="3" >
  <$mt:EntryTitle$>
</mt:Entries>

という順序で書いた方がよいでしょう。

Comments [0] | Trackbacks [0]

Excel VBAで列の幅を自動調整する

July 1,2015 2:22 AM
Category:[VB/VBA]
Tag:[Excel]
Permalink

Excel VBAで列の幅を自動調整する方法を紹介します。

1.問題点

次のようにExcelでA列のセルに文字を設定しています。

ExcelでA列のセルに文字を設定

このセルの横幅を自動調整したいのですが方法が分かりません。

ということで、列や幅を自動調整する方法を紹介します。

2.VBAで列や幅を自動調整する

VBAで列や幅を自動調整するには、AutoFitというメソッドを利用します。

A列全体で一番長いものに合わせるのであれば、次のコードを標準モジュールに設定します。

Sub test()
    Columns("A").AutoFit
End Sub

実行結果(A1セルの横幅にあわせる)
特定のセルの横幅に合わせる

特定のセルの横幅に合わせるのであれば、次のコードを標準モジュールに設定します。

Sub test()
    Range("A2").Columns.AutoFit
End Sub

実行結果(A2セルの横幅にあわせる)
特定のセルの横幅に合わせる

Comments [0] | Trackbacks [0]

Movable Typeのテンプレートタグで記事タイトル一覧を表示する

June 30,2015 2:02 AM
Category:[最近のエントリー]
Tag:[Customize, MovableType]
Permalink

Movable Typeのテンプレートタグで記事タイトル一覧を表示する方法を紹介します。

1.はじめに

Movable Typeのテンプレートタグ関係の記事は過去に多く出回っていますが、

  • 基本的なテクニックは投稿していない
  • MTの書籍がほとんど売られていない(あるにしてもある程度基礎知識が必要)
  • MT6以降のテンプレートタグ関連記事がほとんどない

という観点から、もう一度初心に戻ってMTの記事を書きおこしてみることにしました。

ということで、まずはMovable Typeのテンプレートタグで記事一覧を表示する方法です。

2.記事タイトル一覧を表示する

記事タイトル一覧を表示するためのもっとも簡単なサンプルを示します。

<mt:Entries>
  <$mt:EntryTitle$>
</mt:Entries>

MTEntriesというテンプレートタグは、記事データを繰り返し表示するためのブロックタグです。

MTEntryTitleというテンプレートタグは、記事タイトルを表示するためのファンクションタグです。

このテンプレートタグを新しく作成したインデックステンプレートに貼り付け、保存・再構築してみてください。

たとえばブログに3件のブログ記事に、

  • AAA
  • BBB
  • CCC

というタイトルがつけられていれば、前述のテンプレートタグを実行すると、

AAABBBCCC

という内容で出力されます。

3.HTMLタグを追加する

2項のサンプルでは、表示されたタイトルがHTML文書的に改行されていません。

次のようにbr要素を追加することで改行が行われます。

<mt:Entries>
  <$mt:EntryTitle$><br />
</mt:Entries>

ul要素/li要素を追加するには次のようにします。

<ul>
<mt:Entries>
  <li><$mt:EntryTitle$></li>
</mt:Entries>
</ul>

ただしこの方法では1件も記事がない場合に空のul要素が出力されるので、推奨する方法は以下です。

<mt:Entries>
  <mt:EntriesHeader>
<ul>
  </mt:EntriesHeader>
  <li><$mt:EntryTitle$></li>
  <mt:EntriesFooter>
</ul>
  </mt:EntriesFooter>
</mt:Entries>

MTEntriesHeaderは最初の記事のときだけ実行されるブロックタグ、MTEntriesFooterタグは最後の記事のときだけ実行されるブロックタグです。

以上です。

MTEntriesタグには他に多くの設定方法がありますが、それらについては別エントリーする予定です。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages