注)これは、ダイナミックパブリッシングを使用している自分のためのメモでもあります。
同種のカスタマイズについては、「個別エントリーアーカイブに同一カテゴリーのエントリーを表示」 by 小粋空間をはじめいろいろなサイトで紹介されていますが、動的生成の場合は、MTTagInvokeプラグインがPerlで書かれているため、使用できません。ここでは、なぜPerl版プラグインがダイナミックパブリッシングで使用できないかは省略します。手抜き( ̄◇ ̄;)
また、「ダイナミックパブリッシング下でPerlのプラグインを使用する方法」 by Wing Memo(Perl版プラグインを使用する部分だけを静的生成にして部品ファイルを作成し、MTInclude file="○○.html"で動的ページに取り込むという方法)をやろうとしても、この部品ファイル(インデックステンプレート)を再構築する際、「<$MTEntryCategory$>が<MTEntries>タグ内で使用されていません!」とのエラーメッセージで再構築エラーになってしまい使用することができません。なぜかは、ナゾ…。
そこで、ダイナミックならではのSmartyを使用した表示方法を紹介します。困ったときのSmarty!(需要があるかは別にして。)(;´д`)
まず、当該エントリーのサイドバーあたりに、”関連記事”として、同一カテゴリのリストを表示するには、
<MTEntries lastn="○" category="<MTEntryCategory>">
が使用できればよいわけですが、MTタグをcategory属性に書くことはできません。そこで<MTEntryCategory>の内容を文字列として取得して、<MTEntries>のcategory属性に代入してあげればよいのです。簡単でしょ?
ちなみにおいらが使用しているコードを紹介します。
<div class="sidetitle">
関連記事
</div>
<div class="side">
{{capture name="entry_category"}}<$MTEntryCategory$>{{/capture}}
<MTEntries lastn="20" category="`$smarty.capture.entry_category`">
<a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a><br />
</MTEntries>
</div>
※CSSクラス宣言は、小粋空間テンプレートに対応しています。



ダイナミックパブリッシングのTIPSは、ネット上にあまりなくて困っていました。
とても参考になり感謝しています。さっそく、設置させていただきました。m_m
おはつです。
ダイナミックの検証も兼ねて、いろいろやってるところですが、いかんせん情報が少ないですよね。エントリでは、Smartyの基礎の部分は省略していますが、お役に立って幸いです。WEBに直接コードを書くのは邪道かもしれません。本来は、PHPでプラグインのソースコードが書ければよいのでしょうけど。Perlの文法を知ってる人でPHPもできるよって人がいたら、早く移植して欲しいものです。ダイナミックは少数派?のようですがガムバりましょう!
早速使わせてもらっています。ちょうど困っていた所で、助かりました。
いえいえ律儀にありがとうございます。今は、サーバーの能力不足から、ダイナミックを止めましたので、3.33-jaでは検証していませんが、お役に立てて光栄です。