yenomoto

MTIfMoreResultsとMTIfPreviousResultsタグについて

0

現在、ページ分割を行おうとしているのですが、
タイトルのタグを使用して試みていますが、
うまくいきません。

やりたいことは、例として10件の記事があった場合、
5件ごとに分割し、「>」
を表示させるというものです。
(1から5件目の記事が表示されていたときに「Next >>」を
クリックすると、6件目から10件目が表示される)

現在の症状は、10件の記事があっても「>」が
表示されないというものです。

コーディングは、以下のコーディングを行っています。

            <mt:Entries limit="5" offset="auto">
                <div class="pht_list_image">
                            <a href="<mt:EntryPermalink>"><mt:EntryAssets type="image" lastn="1"><img src="<mt:AssetThumbnailURL width="96">" width="96" alt="<$mt:EntryTitle>"></mt:EntryAssets></a>
                        </div>
            </mt:Entries>

</div>
</div>

<!-- ページリンク -->
<div id="pht_page_link">
<div id="pht_page_link_left">
<MTIfPreviousResults>
<a href="<MTPreviousLink>" rel="prev">&lt;&lt; Prev</a>
</MTIfPreviousResults>
</div>
<div id="pht_page_link_right">
<MTIfMoreResults>
<a href="<MTNextLink>" rel="next">Next &gt;&gt</a>
</MTIfMoreResults>
</div>

</div>

掲題のタグは、マニュアルによると、検索結果が複数ある場合、かつ、
MTPreviousLinkまたは、MTNextLinkがある場合は、
「>」が表示されるとあります。

ただ、不思議なのは、のlimitモディファイアーを"1"に
すると「>」が表示されます。
ただ、このままでは、記事が一件しか表示されず、
大変不便です。

環境はMT5.21でダイナミックパブリッシングを使用しております。

どなたか対処法をご存じの方がいらっしゃいましたら、
ご教示いただければと思います。

以上、よろしくお願い申し上げます。

返信(8)

| 返信する
  • すいません。「>」は

    「Next >>」

    とご理解ください。

  • 何か大きな勘違いをされているように見えます.

    MTPreviousLinkもMTNextLinkも「検索結果」テンプレート内でしか意味をなしませんし,この場合MTEntriesではなくMTSearchResultsブロックで表示されたエントリーの数が複数ある場合で,且つ検索時にテンプレート内でMTSearchMaxResultsの設定がされている場合(環境変数MTSearchMaxResultsに数値の設定をしてある事が前提です)に,初めてMTPreviousLinkなりMTNextLinkなりが機能します.

    小粋空間さんの方で検索結果の分割表示のカスタマイズについて説明があるので,そちらを参考になさってはどうでしょうか.
    小粋空間: Movable Type 4.2 検索結果ページのカスタマイズ:1ページに表示する件数を変更する

    • あ,MTIfMoreResultsとMTIfPreviousResultsの話でしたね.
      もう一回書き直しますと…

      MTIfMoreResultsもMTIfPreviousResultsも「検索結果」テンプレート内でしか意味をなしませんし,この場合MTEntriesではなくMTSearchResultsブロックで表示されたエントリーの数が複数ある場合で,且つ検索時にテンプレート内でMTSearchMaxResultsの設定がされている場合(環境変数MTSearchMaxResultsに数値の設定をしてある事が前提です)に,初めてMTIfMoreResultsの内容なりMTIfPreviousResultsの内容なりが機能します.

      …ということで,訂正しておきます.失礼しました(^^;

  • HashiMさん、こんにちは。

    アドバイスありがとうございます。
    そうでしたか・・・
    MTSearchResultsブロックで有効と言うことですね。
    この方法を試してみようと思います。

    実は、この方法に至るまでには、
    いろいろなサイトを参考させていただいたのですが、
    MTEntriesで記述している例が結構見られたので、
    この方法でトライしていました。

    主にこのサイトを参考にしました。
    http://wing.w-museum.com/200808161315.html
    上記サイトのサンプル2です。
    これで動いているような記述でしたので、
    試してみたのですが、先の結果となりました。

  • >yenomotoさん
    ダイナミックパブリッシングでのページ分割は、公式サイトの以下の記事のことと思われます。
    http://www.movabletype.jp/documentation/designer/pagination.html

    MT5の場合、MTEntiresタグブロック内にページ分割用のタグを記述すれば動作するようなのでお試しください。そうした場合、記事毎にナビゲーションが表示されてしまうので、ナビゲーション全体をMTEntriesHeaderタグかMTEntriesFooterタグで括るとよいでしょう。

    確認バージョンはMT5.06/MT5.12です。ちなみにMT4.2のときはアーカイブテンプレートのMTEntiresタグの外側に記述しても動作したように記憶していますが、MT5では動作しませんでした。

    この件についてはブログでも別途情報展開したいと思います。

  • yujiroさん、こんにちは。

    コメントありがとうございます。

    ご教示いただきましたURLですが、
    こちらも参考にさせていただきました。

    アドバイスいただきました方法で
    再度試みましたが、思ったようにページ分割しませんでした。

    いろいろと調べているうちに、MovableTypeの
    仕様ではないかと思われるところが出てまいりました。

    投稿記事数を変えながらテストしたところ、
    以下の式が成り立たないと、ページ分割が出来ないようです。

    一ページに表示したい記事数*2+1

    例として、記事を5件ごとに一覧表示したい場合は、
    11件の記事がないと5件ごとに一覧表示できない
    という感じです。

    もう一例として、7件記事がある場合は、
    5件目までは表示されますが、「Next >>」が
    表示されないために6,7件目が表示できない。
    という感じです。

    なぜこのようになるのかが不思議でなりません。
    設定などを見てみましたが、
    思い当たるところがありませんでした。

    コーディングでカバーしないとならないかと思っていますが、
    何かご存じのことがありましたら、
    ご教示いただければ幸いです。

  • >yenomotoさん
    同様と思われる事象が確認できました。具体的には、ページ分割したときの合計ページ数が2ページの場合に、1ページ目に「Next>>」が表示されないという不具合が発生します。

    調べたところ、MTIfMoreResultsタグのダイナミックパブリッシング処理に問題がありましたので、対処を行ったファイルを作ってみました。以下のリンクから対処ファイルをダウンロードしてください。

    http://www.koikikukan.com/archives/download/MovableType/patch/block.mtifmoreresults.zip

    アーカイブを展開して、中にある「block.mtifmoreresults.php」をMovable Typeインストールディレクトリの

    php/lib/block.mtifmoreresults.php

    と置き換えてください(元のblock.mtifmoreresults.phpはどこかに保存しておいてください)。置き換えた後、動作をご確認願います。

    ご質問のパターンおよび複数のパターンで動作確認していますが、不具合ありましたらご連絡ください。

  • yujiroさん、こんにちは。

    案内いただきましたPHPファイルの置き換えを行い、
    確認いたしましたところ、問題なく動作いたしました。

    問題になっていた合計ページが2ページの場合も問題なく、
    一ページのパターン、3ページ以上のパターンも問題なく
    動作しております。

    以上、正常動作の報告とさせていただきます。
    対応いただきまして、ありがとうございました。

返信する