カテゴリーアーカイブページの最後に「続きを読む」のリンクを表示する
カテゴリーアーカイブページで表示するブログ記事数を制限している場合、ページの最後に「続きを読む」のリンクを表示し、そのリンクをクリックすれば、月別カテゴリーアーカイブページにジャンプするカスタマイズです。
例えば、カテゴリーアーカイブページで新着5件のブログ記事を表示している場合、「続きを読む」のリンクをクリックすれば、新着6件目のブログ記事のある月別カテゴリーアーカイブページの該当記事の位置までジャンプします。
図にすると次のような感じです。
1.カスタマイズ
当サイトの配布テンプレートの場合、「ブログ記事リスト」を次のように変更します。他のテンプレートでも構造はそれほど大きく変わらないので利用できると思います。
変更前
...前略...
<mt:if name="datebased_archive">
<mt:entries>
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
</mt:entries>
<mt:else>
<mt:entries limit="auto">
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
</mt:entries>
</mt:if>
</div>
</div>
...後略...
変更後
...前略...
<mt:if name="datebased_archive">
<mt:entries>
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
</mt:entries>
<mt:else>
<mt:entries lastn="6">
<mt:unless name="__last__">
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
<mt:else>
<mt:entryDate format="/%Y/%m/" setvar="year_month" />
<mt:entryID setvar="entry_id" pad="1" />
</mt:unless>
</mt:entries>
</mt:if>
<mt:if name="archive_class" eq="category-archive">
<mt:ifArchiveTypeEnabled archive_type="Category-Monthly">
<div class="content-nav">
<a href="<mt:blogURL /><mt:subCategoryPath separator="-" /><mt:getVar name="year_month" />#a<mt:getVar name="entry_id" />">続きを読む</a>
</div>
</mt:ifArchiveTypeEnabled>
</mt:if>
</div>
</div>
limit モディファイアを lastn モディファイアに変更し、lastn モディファイアの値に、「カテゴリーアーカイブページに表示したい件数+1」を設定します(ここでは「6」)。
最後の1件はカテゴリーアーカイブページに表示せず、ブログ記事情報(投稿月日とブログ記事ID)だけを取得し、変数に保持します。
そのあと、カテゴリーアーカイブで、月別カテゴリーアーカイブのアーカイブマッピングがある場合
のみ、ブログURL・サブカテゴリーパスと変数の情報を使って、月別カテゴリーページの該当記事へのアンカーを生成します。
2.注意事項
余談です。
元テンプレートが limit モディファイア「auto」を使っているので、当初は次のように、limit モディファイアと unique モディファイアを組み合わせ、新着1件のブログ記事情報を取得しようと思いましたが、正常に動作しません(情報が取得できず)でした。
...前略...
<mt:if name="datebased_archive">
<mt:entries>
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
</mt:entries>
<mt:else>
<mt:entries limit="auto">
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
</mt:entries>
</mt:if>
<mt:if name="archive_class" eq="category-archive">
<mt:ifArchiveTypeEnabled archive_type="Category-Monthly">
<mt:entries unique="1" limit="1">
<mt:entryDate format="/%Y/%m/" setvar="year_month" />
<mt:entryID setvar="entry_id" pad="1" />
</mt:entries>
<div class="content-nav">
<a href="<mt:blogURL /><mt:subCategoryPath separator="-" /><mt:getVar name="year_month" />#a<mt:getVar name="entry_id" />">続きを読む</a>
</div>
</mt:ifArchiveTypeEnabled>
</mt:if>
</div>
</div>
...後略...
3.関連記事
- Movable Type6で記事のない親カテゴリのカテゴリページを出力する方法
- Movable Typeでブログ記事が属するカテゴリアーカイブのリンクをブログ記事ページに表示する
- Movable Typeで「カテゴリ+年別」の記事一覧を表示する方法
- Movable Typeで親カテゴリーアーカイブに表示した記事のメインカテゴリまでのパンくずリストを表示する
- Movable Typeのカテゴリのベースネームについて
- Movable Typeで複数ブログのブログ記事を同名のカテゴリ別に振り分ける方法
- Movable TypeのMTIfCategoryタグとMTEntryIfCategoryタグの違い
- Movable Typeのカテゴリリストで階層別に背景画像を変更する
- Movable Typeのカテゴリ・フォルダで特定の最上位階層を表示しない方法
- Movable Typeのカテゴリリストにダミーの親カテゴリを表示する
- MTEntriesタグのcategoryモディファイアに「AND」を含むカテゴリを指定する
- ブログ記事ページに自分が属するカテゴリのツリーと直属カテゴリの他のブログ記事一覧を表示する
- Movable Type 5でのMTEntriesタグのcategory/catgoriesモディファイアの動作改善について
- 親カテゴリーアーカイブにサブカテゴリーのブログ記事を表示する場合に特定のサブカテゴリーのブログ記事をフィルタリングする
- 特定のカテゴリのブログ記事を表示する
≫ リアルタイプ:「アーカイブ」のリンク from WolaWola
インデックステンプレートの下部には、そこに表示されていない他のブログ記事へ誘導する為の「アーカイブ」というリンクがあります。このリンク先がアーカイブインデ... [続きを読む]
お忙しいところ大変申し訳ありません、質問があります。
「続きを読む」を押した後、ページ上部に「カテゴリ月別」のリンクが現れます。
このリンクをページ下に、あるいは上下に表示させることは可能でしょうか?
>takiさん
こんばんは。
ご質問の件で確認ですが、「ページ上部に「カテゴリ月別」のリンク」というのは、例えば「ハンドメイドギア」カテゴリページに移動した後の
« ハンドメイドギア: 2007年3月 | Main | ハンドメイドギア: 2007年9月 »
というリンクのことでしょうか。
であれば、「ブログ記事リスト」アーカイブテンプレートの、この記事の1項で追加した下(</div> が2つ並んでいる直前)に下記のタグを追加してください。
<div class="content-nav">
<mt:archivePrevious>
<a href="<mt:ArchiveLink />">« <mt:archiveTitle /></a> |
</mt:archivePrevious>
<a href="<mt:Link template="main_index" />">Main</a>
<mt:archiveNext>
| <a href="<mt:ArchiveLink />"><mt:archiveTitle /> »</a>
</mt:archiveNext>
</div>
それではよろしくお願い致します。
お忙しいところ、回答いただきましてありがとうございました!
はじめまして。
いつも大変役立たせていただいております。
また、ご挨拶もせず、大変失礼しておりました。
現在、拙ブログはMT4.24で稼動しており、当エントリーのカスタマイズを試してみました。
しかし、IDは取得している模様なのですが、「続きを読む」をクリックしても、「ページがみつかりません」のエラーが出てしまいます。
ブログ記事リストには、月別カテゴリーアーカイブのアーカイブマッピングは存在しています。
原因としては何が考えられますでしょうか。
また、
<mt:entries>には、 lastn="11"を設定しているのですが、10件以下のカテゴリーにも「続きを読む」の表示が出てしまうのは仕様でしょうか?
うまく説明できなくて申し訳ありませんが、よろしくお願い致します。
お騒がせ致しました・・・
上記コメントの件に関しましては、あれこれ考えてみましたが・・・諦めました(*_*)
月別カテゴリーアーカイブでお茶を濁します。
ただ、月別カテゴリーアーカイブからページを表示させると、レイアウトが崩れてしまいます(拙ブログは3カラムです)。
右カラムが、左カラム下や、コンテナ内に入り込んだりします。
困ったことに、崩れない月も存在したりします・・・
こうなってしまうと、もうお手上げです・・・
お騒がせついでと言ってはなんですが、お助けいただけますでしょうか。
>やまださん
こんばんは。
テンプレートご利用ありがとうございます。
ご質問の件ですが、こちらからいくつかの月別カテゴリーアーカイブページを拝見させていただいたところ、正常に表示されているようです。
まだ解消していないようでしたら、お手数ですが、該当のページのURLとご利用のブラウザ名をお知らせください。
それではよろしくお願い致します。
yujiro様
お手数をおかけして申し訳ありません。
実は現在、初期状態に戻しておりまして、私も正常に稼動しているのを確認しております。
レイアウトが崩れるのは、月別アーカイブの年別折りたたみのスクリプトが原因のようなのです。
本日、現状のアーカイブの下に追加しておきますので、症状を確認をしていただければ幸いです。
よろしくお願い致します。
申し訳ありません、
ブラウザは、IE6。
URLは一例として、
http://sarayama-prs.com/blog/archive/cat25/cat26/2009/05/
サブカテゴリー(どこでも)を表示して、
月別カテゴリーアーカイブのリンクからページを表示させれば症状は発生します。
IE7では、回り込みは発生しませんが、
月別アーカイブの年別折りたたみ以下のサイドメニューの表示がおかしくなります。
opra9.5、Firefox2.0では正常に表示されるようです。
何度も書き込んでしまい、コメント欄汚しのようで申し訳ありません・・・
何度も何度も申し訳ありません。
月別アーカイブの、
<dd class="side">の次に、<div id="categories">を挿入したところ、解決しました。
このやり方で合っているのかわかりませんが、レイアウトの崩れはなくなりました。
本当にお騒がせしてしまいましたが、
これからもよろしくお願い致します。
yujiroさんのご活躍を、心より祈念しております。
>やまださん
こんばんは。
ご質問の件ですが、[9]のコメントで書いていただいた対処方法は好ましくありません。
ページのソースを拝見させていただいたところ、おそらく月別アーカイブリストのツリー化?の設定が間違っているように思います。
月別アーカイブリストのツリー化で参考にした記事を再度ご覧になり、設定しなおしてみてください。
再設定して不具合が直らない場合、お手数ですが、参考にした記事のURLをご連絡ください(当方のカスタマイズ記事が間違っているかもしれないので)。
それではよろしくお願い致します。
yujiro様
拙ブログなどを気に留めていただきありがとうございます。
参考にさせていただいた記事は、
http://www.koikikukan.com/archives/2006/12/18-003923.php
他、ツリー化、折りたたみ関連。
それから、
http://www.koikikukan.com/archives/cat_26.php
です。
実は私、
<div>なのか、<dt>、<dd>なのかもよくわからないヘタレです・・・
div要素だと、IE6においては、フォント表示が極小になってしまいます。
dt、ddを用いると、レイアウトが崩れます。
何度かやり直してみましたが、どうしてもうまくいきません。
諦めの境地に入り始めました^^;
ちなみに現在は、div要素を用いたものを置いてあります。
>やまださん
こんにちは。
それでは、
http://www.koikikukan.com/archives/2006/12/18-003923.php
のリスト7.2のサンプルコードは以下のものを使ってください(一字一句変更せず)。
<dt class="sidetitle" id="monthlyname">
Monthly Archives
</dt>
<dd class="side" id="monthlylist">
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader><div id="archive<$MTArchiveDate format="%Y"$>name"><span><$MTArchiveDate format="%Y年"$></span></div><ul id="archive<$MTArchiveDate format="%Y"$>list" class="tree"></MTArchiveDateHeader>
<li class="tree<MTArchiveDateFooter>_end</MTArchiveDateFooter>"><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B月"$></a> [<$MTArchiveCount$>]</li><MTArchiveDateFooter></ul></MTArchiveDateFooter>
</MTArchiveList>
</dd>
<dd>
<script type="text/javascript">
//<![CDATA[
<MTArchiveList archive_type="Monthly"><MTArchiveDateHeader>FoldNavigation('archive<$MTArchiveDate format="%Y"$>','off',false);</MTArchiveDateHeader>
</MTArchiveList>
FoldNavigation('monthly','off',false);
//]]>
</script>
</dd>
あと、一点確認ですが、ArchiveDateFooterプラグインは4.2対応のものをお使いかご確認ください。
それではよろしくお願い致します。
yujiro様
本当に何度もすみませんでした。
ありがとうございます。
残念ながら、不具合は解消しませんでした。
アドバイスを頂いたとおり、プラグインのバージョン等は確認いたしました。
しかし、</ul>が付いたり付かなかったり・・・
付けば正常表示なのですが、付かなければ・・・
きっと他に原因があるのでしょう。
まだまだ、月別アーカイブを折りたたむほど歴史のあるサイトではないので、今はオリジナルに戻すことにします。
ご多忙中の中、本当にありがとうございました。
また、何かございましたら、よろしくお願い致します。