Category Movable Type Archive

MTの予約変数

Posted by poundhound on

  • このエントリーをはてなブックマークに追加
  • Share on Tumblr
  • Clip to Evernote

すぐ忘れるので覚え書き

  • メインテンプレート main_index
  • ブログ記事とウェブページ feedback_template
  • ブログ記事リスト archive_listing
  • アーカイブインデックス archive_index
  • 検索結果 search_results
  • コメントプレビュー comment_preview_template
  • コメント完了 comment_response_template

もっと詳しくはMovableType.jpのアーカイブテンプレートに設定される予約変数

MTでのパンくずリスト

Posted by poundhound on

  • このエントリーをはてなブックマークに追加
  • Share on Tumblr
  • Clip to Evernote

MTネタ連発ですが、今回はMTでのパンくずリストを考えてみました。

カテゴリーアーカイブで表示するパンくずリストで、親カテゴリを含めてリストアップしてエントリーの無いカテゴリーに関してはカテゴリーアーカイブへのリンクは入れず、今表示しているカテゴリーのリンクも入れないと言うもの。

MTのソースコード

<div class="topicPath">
<mt:SetVarBlock name="this_category"><$mt:CategoryLabel$></mt:SetVarBlock>
<ul>
<li><a href="<$mt:BlogURL$>">Home</a></li>
<mt:ParentCategories>
<mt:SetVarBlock name="category_list"><$mt:CategoryLabel$></mt:SetVarBlock>
<mt:If name="category_list" ne="$this_category">
<mt:IfNonZero tag="CategoryCount">
<li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></li>
<mt:Else>
<li><$mt:CategoryLabel$></li>
</mt:IfNonZero>
<mt:Else>
<li class="noImage"><em><$mt:CategoryLabel$></em></li>
</mt:If>
</mt:ParentCategories>
</ul>
</div>

Read more

同一カテゴリーに属したエントリーをブログ記事に表示する

Posted by poundhound on

  • このエントリーをはてなブックマークに追加
  • Share on Tumblr
  • Clip to Evernote

なんだかトチ狂ったエントリーばっかり。自分の勉強不足を痛感(苦)。

よくよく考えてみるとmt:Entries自体がエントリーに関する様々な情報を持ってループしてる訳ですよね。mt:Entriesを良く理解していませんでした。単純に次のコードで今表示しているエントリーを排除出来ることに気づきました。

<mt:SetVarBlock name="category_list"><$mt:EntryCategory$></mt:SetVarBlock>
<mt:SetVarBlock name="this_entry"><$mt:EntryTitle$></mt:SetVarBlock>
<dt>カテゴリー:<$mt:GetVar name="category_list"$> のその他の記事</dt>
<dd>
<ul>
<mt:Entries category="$category_list">
<mt:SetVarBlock name="entries"><$mt:EntryTitle$></mt:SetVarBlock> <mt:If name="entries" ne="$this_entry"> <li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li> </mt:If> </mt:Entries> </ul> </dd>

mt:Entriesのループに入る前に今のエントリータイトル(別にエントリーIDとか何でも良い)を比較用の変数にセット。mt:Entriesループの一番最初でentries変数にループしているエントリータイトルを入れて現在表示しているエントリータイトルthis_entryと比較して異なれば表示。この比較をエントリー数だけループ。

ばかだなぁ俺...

[修正版]mt:For(ループ)を使って同一カテゴリーに属したエントリーをブログ記事に表示する

Posted by poundhound on

  • このエントリーをはてなブックマークに追加
  • Share on Tumblr
  • Clip to Evernote

一応エントリー

<mt:SetVarBlock name="category_list"><$mt:EntryCategory$></mt:SetVarBlock>
<mt:SetVarBlock name="this_entry"><li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li></mt:SetVarBlock>
<mt:Entries category="$category_list">
<mt:SetVarBlock name="push(entry_list)"><li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li></mt:SetVarBlock>
</mt:Entries>

<$mt:Var name="count(entry_list)" setvar="counter"$>

<ul>
<mt:For var="i" from="0" to="$counter">
<mt:If name="entry_list[$i]" ne="$this_entry">
<$mt:GetVar name="entry_list[$i]"$>
</mt:If>
</mt:For>
</ul>

mt:For(ループ)を使って同一カテゴリーに属したエントリーをブログ記事に表示する

Posted by poundhound on

  • このエントリーをはてなブックマークに追加
  • Share on Tumblr
  • Clip to Evernote

同一カテゴリーに属したエントリーを表示させるのにmt:Entriesに現在のカテゴリーを取得した変数をモディファイアに与えても今表示しているエントリーも表示されてしまったので、ちょっとmt:Forタグを使って今表示している記事を排除してみました。

追記

よくよく考えてみるとmt:Entries自体がループなんですよね。mt:Forなんて使う必要ないですね。

<mt:SetVarBlock name="category_list"><$mt:EntryCategory$></mt:SetVarBlock>

<$mt:SetVar name="counter" value="0"$>
<mt:Entries category="$category_list"$>
<$mt:SetVar name="counter" op="++"$>
<mt:SetVarBlock name="permalink_list[$counter]"><$mt:EntryPermalink$></mt:SetVarBlock>
<mt:SetVarBlock name="title_list[$counter]"><$mt:EntryTitle$></mt:SetVarBlock>
</mt:Entries>

<dt>カテゴリー:<$mt:GetVar name="category_list"$> のその他の記事</dt>
<dd>
<mt:SetVarBlock name="this_permalink"><$mt:EntryPermalink$></mt:SetVarBlock>
<mt:SetVarBlock name="this_title"><$mt:EntryTitle$></mt:SetVarBlock>
<ul>
<mt:For var="i" from="1" to="$counter">
<mt:If name="permalink_list[$i]" ne="$this_permalink">
<li><a href='<$mt:GetVar name="permalink_list[$i]">'>
<mt:If name="title_list[$i]" ne="$this_title">
<$mt:GetVar name="title_list[$i]"$></a></li>
</mt:If>
</mt:If>
</mt:For>
</ul>
</dd>

Read more