LoginSignup
0
0

More than 5 years have passed since last update.

【Tips】MovableTypeでブログのカテゴリページに他ブログの記事Tag名に条件が一致した記事を出力する方法

Posted at

Qiita50投稿目になります。

前回、投稿した【Tips】MovableTypeでブログ記事のmt:EntryTagsが他のブログのカテゴリと紐付ける方法の逆バージョンという形になります。

  • ブログのカテゴリページで出力
  • 他ブログで設置したTag名を取得しカテゴリ名と一致した記事を出力させる
  • 処理が重たいのmt:loopで展開させる
// カテゴリテンプレート
<mt:CategoryLabel setvar="this_category" />  // カテゴリを取得する
<mt:Blogs blog_ids="対象となるブログIDを入力" ignore_archive_context="1">
<mt:Tags>
<mt:TagName setvar="tag_name" />  // 対象ブログのタグを変数に格納
<mt:If name="this_category" eq="$tag_name">
<mt:Entries lastn="0">  // 対象の記事情報をmt:EntriesでSetHashVarへ格納
  <mt:SetHashVar name="entry">
    <mt:EntryTitle setvar="title" />
    <mt:EntryPermalink regex_replace='$regex_replace',"/" setvar="entry_link" />
    <mt:EntryDate format="$dateformat" setvar="entry_date" />
    <mt:CategoryLabel setvar="category_label" />
    <mt:CategoryArchiveLink regex_replace='$regex_replace',"/" setvar="category_link" />
  </mt:SetHashVar>
  <mt:Var name="push(entries)" value="$entry" />
</mt:Entries>
</mt:If>
</mt:Tags>
</mt:Blogs>
<mt:loop var="entries">  // SetHashVarをloopでHTMLへ展開する
  <mt:If name="__first__">  // ループの最初の処理
  <div class="entries-wrap">
  <h1>このカテゴリに関連する記事はこちら</h1>
  </mt:If>
  <div class="entries-box">
    <a href="<mt:Var name="entry_link" />">
      <h2 class="entries-box__title"><mt:Var name="title" /></h2>
    </a>
    <div class="entries-box__list">
      <p class="entries-box__date"><mt:Var name="entry_date" /></p>
      <p class="entries-box__category">
        <a class="entries-box__category_link" href="<mt:Var name="category_link" />">
          <mt:Var name="category_label" />
        </a>
      </p>
    </div>
  </div>
  <mt:If name="__last__">  // ループの最後の処理
  </div>
  </mt:If>
</mt:loop>

この方法は他のブログの情報を引っ張るためカテゴリアーカイブの再構築が重たくなりますが、このような方法でカテゴリ名に関する他ブログの記事Tagと一致させて一覧を取得するができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0