Movable Typeを使ったサイトで、エントリーの下部に、「関連するエントリー」として、同じタグが付いているエントリーを表示したいと思います。


MTのプラグインは利用せずに、MTタグだけで実現したいです。

現在は、こちらのコードをそのまま利用していますが、エントリーのタグが複数あった場合には、
まぜこぜで表示されます。
http://www.devlounge.net/code/related-entries-in-movable-type

こちらのページはカテゴリを複数設定しているようですが、複数タグが設定している場合は、
「XXXタグの関連エントリー」と「YYYタグの関連エントリー」として、最新の10エントリを
表示したいです。
http://shiology.com/shiology/2009/10/1792-091006-2f6.html

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/10/09 13:49:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kaz No.1

回答回数200ベストアンサー獲得回数42

ポイント60pt

確認できる環境でタグを使用していないため未検証ですが、以下のコードではどうでしょうか。

(動作しなければポイントは不要です。回答閲覧分はすみません)


<MTEntryIfTagged>

<MTEntryTags>

<MTTagName setvar="entrytag">

<h3><MTTagName>タグの関連エントリー</h3>

<ul>

<MTEntries tag="$entrytag" lastn="10">

<li><a href="<MTEntryPermalink>"><MTEntryTitle></a></li>

</MTEntries></ul>

</MTEntryTags>

</MTEntryIfTagged>

http://q.hatena.ne.jp/answer

id:ken_hrhm

あら。出来てしまいました。

ありがとうございました!

2009/10/09 13:49:38
  • id:shingo_nabe
    このコードだと「関連エントリー」の中に参照元のエントリーも含まれてしまいます。
  • id:ken_hrhm
    確かに含まれています。。。
  • id:kaz
    > shingo_nabe さん
    > 参照元のエントリーも含まれてしまいます

    あらら、そうですね。
    ご指摘ありがとうございます。

    参照元エントリーの ID を取得して除外するなら以下のような形でしょうか。
    エントリー数が多いと MTIf の処理分、若干スピードが落ちるので、
    気にしないってのもアリかもしれません。
    負荷の少ない上手いやり方などがあれば、フォローをお願いします。


    <MTEntryIfTagged>
    <MTEntryID zero_pad="5" setvar="this_entry">
    <MTEntryTags>
    <MTTagName setvar="entrytag">
    <h3><MTTagName>タグの関連エントリー</h3>
    <ul>
    <MTEntries tag="$entrytag" lastn="10">
    <MTEntryID zero_pad="5" setvar="get_entry">
    <MTIf name="get_entry" ne="$this_entry">
    <li><a href="<MTEntryPermalink>"><MTEntryTitle></a></li>
    </MTIf>
    </MTEntries></ul>
    </MTEntryTags>
    </MTEntryIfTagged>
  • id:ken_hrhm
    アップデートありがとうございました。

    こちらでも、それほどリビルドに時間はかからないようです!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません