カテゴリーページの分割

未分類

もともとPHP化する目的の一つでした。
作成した新潟のフレッシュ・ウォーター・フィールドで試してみました。このブログも釣り場の写真をいっぱい貼り付けている関係でカテゴリーで表示する際に、非常に重くなっていましたので効果を見てみるにはもってこいのページです。
既に多くの方が情報を公開してくださっているMTPaginateを利用しました。今回は、*acoustic : カテゴリーアーカイブのページ分割さんの情報をそのまま実施しました。感謝です。


本当に申し訳ないくらいなのですが、*acousticさんの手順であっけなくページ分割ができてしまいました。感謝です。
一応、実際に行った手順を記述しておきます。
MTPagiateをダウンロードしてきて解凍し、MTPaginate.plをpluginsディレクトリに保存しました。
カテゴリーアーカイブのテンプレートの変更点は以下の3箇所です。
変更箇所1 <MTEntries>の直前に以下の2行を追加

<MTPaginate>
<MTPaginateContent max_sections=”4″>
※max_sectionsで1ページに表示するエントリー数を指定。

変更箇所2 </MTEntries>の直前に以下の行を追加

<$MTPaginateSectionBreak$>

変更箇所3 </MTEntries>の後に以下の5行を追加

</MTPaginateContent>
<MTPaginateIfMultiplePages>
<$MTPaginateNavigator style=”links” format_all=”all pages” place_all=”after” separator=” | ” format_current=”<font size=+1><b>%d</b></font>”>
</MTPaginateIfMultiplePages>
</MTPaginate>

たったコレで再構築すると、カテゴリーページが分割表示されるようになりました。ビックリです。また、1ページ辺りに表示されるエントリー数を減らすことができましので、表示の速度もバッチリでした。
メデタシ、めでたし...
と、なるはずだったのですが、何の気なしにapacheのログ(error_log)を見ていると以下のような記述が多数出るようになってしまいました。

[error] PHP Notice: Undefined index: page in /home/httpd/html/field/archives/01dl/index.php on line 39

メッセージ中のURLは、今回の対象になったカテゴリーページですので明らかに今回の対応による影響と思われます。一応、見た目の動作は全て上手く行っているようなのですが、該当のページにアクセスがある度にエラーメッセージが出力されるというのも、あまり気持ちの良いものではありませんので対応を探してみました。
何しろ、PHPなどというものは全くの初めてですので、サッパリ検討もつきませんでしたから速攻でGoogleで”Undefine index“などと打ってみて残日録: ページ分割の問題解決しました。さん、にたどり着きました。

<MTCategories>
<a href=”<$MTCategoryArchiveLink$>?page=1″>
<$MTCategoryDescription$>
</a>[<$MTCategoryCount$>]<br />
</MTCategories>

のように、該当ページを呼び出すときに?page=1となるように引数で表示させたいページを渡してあげないといけないというものでした。早速、カテゴリーアーカイブのテンプレートと、本館サイトからのリンクを作成しなおしたところ、今度こそエラーログも出力されずバッチリ解決でした。感謝です。

今回UPした写真:
野鳥写真 ブログ村素敵な野鳥写真がイッパイあり (^^♪

このページにはコメントできません m(__)m

2004 toshi@ノン・トラブルで行こう