RandomArray プラグインを使用し、記事のタグもしくはカテゴリに紐づいた関連記事をランダム表示させるようにしていますが、自分自身の記事を除くことができません。
自分自身の記事を除くことは可能でしょうか、アドバイス等いただけると幸いです。
<mt:If name="entry_archive"> <mt:SetVar name="ids"> <mt:SetVar name="entries"><mt:EntryIfTagged>
<mt:SetVarBlock name="Sametags"><mt:EntryTags glue=' OR '><$mt:TagName$></mt:EntryTags></mt:SetVarBlock>
<mt:Entries tags="$Sametags" lastn="0">
<mt:EntryID setvar="id">
<mt:SetVarBlock name="ids" function="push"><mt:Var name="id"></mt:SetVarBlock>
<mt:SetVarBlock name="entries" key="$id">
<li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li>
</mt:SetVarBlock>
</mt:Entries>
<mt:Else>
<$mt:EntryCategory setvar="Samecat"$>
<mt:Entries category="$Samecat" lastn="0">
<mt:EntryID setvar="id">
<mt:SetVarBlock name="ids" function="push"><mt:Var name="id"></mt:SetVarBlock>
<mt:SetVarBlock name="entries" key="$id">
<li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li>
</mt:SetVarBlock>
</mt:Entries>
</mt:EntryIfTagged><mt:RandomArray name="ids" limit="10" setvar="rand_ids">
<mt:Loop name="rand_ids">
<mt:If name="__first__">
<p>関連記事</p>
<ul></mt:If>
<mt:Var name="entries" key="$__value__">
<mt:If name="__last__"></ul></mt:If>
</mt:Loop>
</mt:If>
コードは
藤本 壱様の「ブログ記事のページに関連記事を出力する」
奥脇 知宏様の「記事 n 件をランダムに取得するテンプレート - RandomArray プラグインバージョン」
を参考にさせていただいてます。
>mayumi.tさん
下記の記事の方法はいかがでしょうか。
ブログ記事ページでその記事以外のブログ記事一覧を表示する方法
http://www.koikikukan.com/archives/2015/07/30-005555.php
注:URLは手打ちなので開かなかったら記事名で検索してください
yujiro様
ご確認ありがとうございます。
いただいた方法にて実装したところ、
とエラーとなり再構築できないようです。
修正内容
- 先頭に、2行追加
- 各タグに unique="1" を追加
修正内容は問題ないと思います。
エラーになるのは元のテンプレートで、たとえば再構築している記事につけたタグが他の記事にひとつも付与されていないとidsに値が設定されないケースがあるのが原因です。
エラーを回避するには、RandomArrayタグ全体をmtifタグで括って、idsの有無を判定してあげればうまくいくんじゃないかと思います。
yujiro様
ご確認いただきありがとうございます。
試したところ、以下のようなエラーになってしまうようです。
最新1記事目の再構築段階でエラーとなります。
なお、この1記事目のタグ・カテゴリは、自身を除き最低1記事は付与されております。
すいませんが現状のテンプレートタグを張りつけて頂けますでしょうか。
テンプレートタグ→テンプレート、です。
完成版を掲載しておきます。
テストケースは下記の通りで再構築時のエラーは発生していません。
タイトル カテゴリ タグ 関連記事
---------------------------------------------
test1 cat2 - test5,test8
test2 cat1 bbb test5
test3 cat3 - test6
test4 cat1 aaa test7
test5 cat2 bbb test2
test6 cat3 - test3
test7 cat1 aaa test4
test8 cat2 - test1,test5
---------------------------------------------
yujiro様
確認・返信が遅くなり失礼いたしました。
検証、完成版のソースをまとめていただきましてありがとうございます!
私の環境にて確認いたします。
何かありましたら、またよろしくお願いいたします。