MovableType 関連記事一覧の備忘録

ブログ関係

忘録としての投稿です。

数ヶ月前から取り組んでいた「関連記事一覧」を各記事の中に組み込みました。

初めにタイトル通りのことを各記事に表示できたらいいなぁ・・から始まりました。
当然、何もない中から書くのは難しいので、参考となる物を組み込んでみます。

<mt:If name=”entry_archive”>
<$mt:EntryID setvar=”entryid”>
<$mt:SetVar name=”count” value=”0″>
<mt:EntryIfTagged>
<mt:SetVarBlock name=”Sametags”><mt:EntryTags glue=’ OR ‘><$mt:TagName></mt:EntryTags></mt:SetVarBlock>
<mt:Entries lastn=”6″ tags=”$Sametags” setvar=”related_entries”>
<mt:If tag=”EntryID” ne=”$entryid”>
<mt:If name=”count” lt=”5″>
<li class=”kanren”><a href=”<mt:EntryLink abs2rel=”1″>”> <p class=”photo”><mt:EntryAssets sort_order=”ascend” type=”image” lastn=”1″><img src=”<mt:AssetThumbnailURL width=”160″ square=”1″>” alt=”<mt:AssetLabel>” width=”120″ height=”120″></mt:EntryAssets></p> <p class=”title”><mt:EntryTitle></p></a></li> <$mt:SetVar name=”count” op=”++”>
</mt:If>
</mt:If>
</mt:Entries>
<mt:Else>
<$mt:EntryCategory setvar=”Samecat”>
<mt:Entries lastn=”6″ category=”$Samecat” setvar=”related_entries”>
<mt:If tag=”EntryID” ne=”$entryid”> <mt:If name=”count” lt=”5″>
<li class=”kanren”><a href=”<mt:EntryLink abs2rel=”1″>”> <p class=”photo”><mt:EntryAssets sort_order=”ascend” type=”image” lastn=”1″><img src=”<mt:AssetThumbnailURL width=”160″ square=”1″>” alt=”<mt:AssetLabel>” width=”120″ height=”120″></mt:EntryAssets></p> <p class=”title”><mt:EntryTitle></p></a></li> <$mt:SetVar name=”count” op=”++”>
</mt:If>
</mt:If>
</mt:Entries>
</mt:EntryIfTagged>
<mt:If name=”count”>
<div id=”widget-kanren”> <h3 id=”kanren”>この<MTEntryTitle>と関係する商品</h3> <ul> <$mt:GetVar name=”related_entries”> </ul> </div>
</mt:If>
</mt:If>

参考:The blog of H.Fujimoto

ブログ記事のページに関連記事を出力する
ブログ記事のページに、タグ/カテゴリから関連記事を出力する方法を紹介します。

これは、各記事に設定した「タグ」が一致する物を表示し、同じ記事は除外する仕様となってます。

とりあえずやってみる!

先ほどのテンプレートを各記事文末にくる様にアーカイブテンプレートに組み込んでみるとこんな感じで表示…

私のイメージしていたのとはかなり?違っていて、この表示(写真)では同じサブ(孫)カテゴリーに属するミニバックホーは除外したかったのです!
で、Movable Typeのテンプレートタグでどれを使えばいいか試行錯誤の開始でした…

テンプレートタグリファレンス | CMSプラットフォーム Movable Type ドキュメントサイト
Movable Type のカスタマイズに利用するMTタグの一覧と機能、使い方を紹介しています。

この中で最初の思いついたのが。「MTCategoryLabel」を使って組み込んでみますが、同じ表示になります。
この時どのように組み込んだかは、もう忘れました…(^^;

 

迷ったら検索

いろいろテンプレートタグを見て考えるのですが一向に分からないので、このキーワード「関連記事 同じサブカテゴリの記事は除外 movabletype」で検索。

関連記事 同じサブカテゴリの記事は除外 movabletype - Google Suche

この検索で私の思っている様なタグの使い方がなく、「SimilarEntries」というプラグインにしてみようか?とも思いましたが、商用は¥10,000(+税)がかかるというので当然却下!

試行錯誤の連続のあとに・・

検索では、見つからなかったので(探し方が悪いだけかも?)テンプレートタグの中で、どれがいいか下記の2点絞って探してみます。

  • 今表示されている記事のカテゴリの取得
  • その表示されている記事と同じカテゴリの記事は除外する

 

MTSubCategories」は良さそうでしたが、ブロックタグなのでカテゴリの取得はムリ・・・

 

そこから考えること1~2週間、カテゴリの取得なので「MTSetVar」か「MTSetVarBlock」を使い、再度「MTCategoryLabel」をつかって・・

 

<MTSetVarBlock name=”thiscatlabel”><$MTCategoryLabel></MTSetVarBlock>

とやって見ましたが、思う様に行かず・・・

 

MTCategoryLabel」がムリなら「MTSubCategoryPath」でどうだ!とやってみると・・・

今までの苦労がいとも簡単にと言うか、すんなり表示!

これで最初に思った通りの表示になりました…(^^;

内容は…
1行目:表示されている記事のカテゴリパスを取得
8&22行目:MTEntries内で 9~18 & 23~32行目:MTUnless内で取得したカテゴリと同じカテゴリ記事を除外

<MTSetVarBlock name=”thiscatpath”><$MTSubCategoryPath>
</MTSetVarBlock> <mt:If name=”entry_archive”> <$mt:EntryID setvar=”entryid”>
<$mt:SetVar name=”count” value=”0″>
<mt:EntryIfTagged> <mt:SetVarBlock name=”Sametags”><mt:EntryTags glue=’ OR ‘><$mt:TagName>
</mt:EntryTags></mt:SetVarBlock> <mt:Entries lastn=”6″ tags=”$Sametags” setvar=”related_entries”> <mt:unless tag=”SubCategoryPath” like=”$thiscatpath”> <mt:If tag=”EntryID” ne=”$entryid”> <mt:If name=”count” lt=”5″> <li class=”kanren”><a href=”<mt:EntryLink abs2rel=”1″>”> <p class=”photo”><mt:EntryAssets sort_order=”ascend” type=”image” lastn=”1″><img src=”<mt:AssetThumbnailURL width=”160″ square=”1″>” alt=”<mt:AssetLabel>” width=”120″ height=”120″></mt:EntryAssets></p> <p class=”title”><mt:EntryTitle></p></a></li> <$mt:SetVar name=”count” op=”++”>
</mt:If> </mt:If> </mt:unless> </mt:Entries> <mt:Else> <$mt:EntryCategory setvar=”Samecat”>
<mt:Entries lastn=”6″ category=”$Samecat” setvar=”related_entries”> <mt:unless tag=”SubCategoryPath” like=”$thiscatpath”> <mt:If tag=”EntryID” ne=”$entryid”> <mt:If name=”count” lt=”5″> <li class=”kanren”><a href=”<mt:EntryLink abs2rel=”1″>”> <p class=”photo”><mt:EntryAssets sort_order=”ascend” type=”image” lastn=”1″><img src=”<mt:AssetThumbnailURL width=”160″ square=”1″>” alt=”<mt:AssetLabel>” width=”120″ height=”120″></mt:EntryAssets></p> <p class=”title”><mt:EntryTitle></p></a></li> <$mt:SetVar name=”count” op=”++”>
</mt:If> </mt:If> </mt:unless> </mt:Entries> </mt:EntryIfTagged> <mt:If name=”count”> <div id=”widget-kanren”> <h3 id=”kanren”>この<MTEntryTitle>と関係する商品</h3> <ul> <$mt:GetVar name=”related_entries”>
</ul> </div> </mt:If> </mt:If>

コメント

タイトルとURLをコピーしました