kentacky

mtPages内でIDを指定してウェブページ情報を出力したい

0

初めての質問になります。
使用ルールを逸脱していたら恐縮です。

やりたいことは表題通りなのですが、
具体的には、mtPagesのループ内でpage idを指定しつつ、
該当のウェブページを関連ページとして出力したいのです。

mtPages内でmtPagesは使えないようなので困っております。
実装方法等、ご存知な方がいらしたらご教示いただきたいです。

よろしくお願いいたします。

返信(9)

| 返信する
  • こういうことでしょうか?

    <mt:Pages>
    <mt:PagesHeader><ul></mt:PagesHeader>
    <li>
    <strong><$mt:PageTitle$></strong>
    <p><$mt:PageBody$></p>
    関連ページ<br>
    <mt:Pages id="特定のページID">
    <a href="#"><$mt:PageTitle$></a><br>
    </mt:Pages>
    <mt:Pages id="特定のページID">
    <a href="#"><$mt:PageTitle$></a><br>
    </mt:Pages>
    <mt:Pages id="特定のページID">
    <a href="#"><$mt:PageTitle$></a><br>
    </mt:Pages>
    </li>
    <mt:PagesFooter></ul></mt:PagesFooter>
    </mt:Pages>

    • コメントありがとうございます。記述していただいた通りの入れ子記述です。
      が、その記述だと内側のmtPagesが正常に出力されませんでした。
      再構築ではエラーは出ませんでしたが、HTMLには何も出力されずでした。
      試したMTのバージョンは6.3.3でしたが、バージョンの問題もあるのでしょうか。

      • 特定のIDをmt:Pagesループ内で決めなくても良いなら、ループの外側でHTMLを作って、それをmt:SetVarBlockで変数に入れておき、mt:Pagesループ内でmt:Varで出力すれば良いのではないでしょうか。

      • <mt:SetVarBlock name="tokuteinoID">
        <mt:Pages id="特定のページID">
        <a href="#"><$mt:PageTitle$></a><br>
        </mt:Pages>
        <mt:Pages id="特定のページID">
        <a href="#"><$mt:PageTitle$></a><br>
        </mt:Pages>
        <mt:Pages id="特定のページID">
        <a href="#"><$mt:PageTitle$></a><br>
        </mt:Pages>
        </mt:SetVarBlock>
        <mt:Pages>
        <mt:PagesHeader><ul></mt:PagesHeader>
        <li>
        <strong><$mt:PageTitle$></strong>
        <p><$mt:PageBody$></p>
        関連ページ<br>
        <$mt:Var name="tokuteinoID"$>
        </li>
        <mt:PagesFooter></ul></mt:PagesFooter>
        </mt:Pages>
  • SetContextプラグインを使用して以下のようなテンプレートを書くとページIDで指定したウェブページの情報が取得できるようです。
    ※ウェブページの場合でも entry_id の指定で問題ありません。

    ▼テンプレートタグ要点

    <mt:Pages>
      <div>
        <mt:PageTitle escape="html" /><br>
        <mt:SetContext entry_id="[ウェブページのID]">
          関連記事: <mt:PageTitle escape="html" />
        </mt:SetContext>
    	</div>
    </mt:Pages>

    ▼テンプレート例

    <mt:Pages>
      <mt:PagesHeader><ul></mt:PagesHeader>
      <mt:SetVar name="undef(related_page_ids)" />
      <li><mt:PageTitle escape="html" />
        <dl>
          <dt>関連ページ</dt>
          <dd>
            <mt:SetVar name="related_page_ids" value="13" function="push" note="関連ウェブページのIDを指定" />
            <mt:SetVar name="related_page_ids" value="12" function="push" note="関連ウェブページのIDを指定" />
            <mt:Loop name="related_page_ids">
              <mt:If name="__first__"><ul></mt:If>
              <mt:SetContext entry_id="$__value__">
                <li><mt:PageTitle escape="html" /></li>
              </mt:SetContext>
              <mt:If name="__last__"></ul></mt:If>
            </mt:Loop>
          </dd>
        </dl>
      </li>
      <mt:PagesFooter><ul></mt:PagesFooter>
    </mt:Pages>

    ▼SetContextプラグイン
    https://github.com/alfasado/mt-plugin-set-context
    http://junnama.alfasado.net/online/2012/12/githubcomalfasado_movable_type.html

    • このプラグインを知りませんでした。ありがとうございます!
      今回は新規にプラグインを導入するのが難しい状況ですので、
      今後のサイト構築で利用させていただこうと思います。

  • <mt:ArchiveList archive_type="Page">
    <mt:Pages id="特定のページID"><mt:PageTitle><br><a href="#"></a></mt:Pages>
    <mt:Pages id="特定のページID"><mt:PageTitle><br><a href="#"></a></mt:Pages>
    <mt:Pages id="特定のページID"><mt:PageTitle><br><a href="#"></a></mt:Pages>
    </mt:ArchiveList>

    こちらでいかがでしょうか。

    • なるほど。
      mtPagesではなくてArchiveListでpage指定をすれば、
      mtPagesの入れ子にならないから出力が可能になる、ということですね。
      これも非常に便利そうです。参考になりました。ありがとうございます。

返信する


カテゴリグループ

フォーラムカテゴリー

21 76

最新のトピック: 公開終了日の取り消し (2013年10月18日 gsk)

391 1078

最新のトピック: 公開終了日について (2019年3月10日 eri)

OpenID対応しています OpenIDについて