●ページ分割してみました。(検索結果ページ)
少し前に月別やカテゴリーなどをページ分割してみました。
今度は、検索ページも分割してみようと思います。
検索ワードによっては、一番表示するエントリーが多いかも知れませんからね。
てことで、いつもと同じですが参考記事です。てか、俺は自分で考えれるほど能力無いので。(^^;
方法は、検索結果ページのページ分割(from 小粋空間)をご覧下さいな。
参考にしながらカスタマイズして、どうやら形になってきたようです。
しかし、ちょっと気になることが出てきました。
1.検索結果ページで再度検索しても、キーワードを認識しない
2.検索結果ページのページ番号に対するセパレート(|)の位置が変(All pages辺り)
せっかくページ分割したのに、レイアウト的にも動作的にもうまくいかないとは・・・。
正直凹みましたが、このまま諦めるほど俺は甘く無いです!
とりあえず、問題点を1個ずつ潰していきました。
1.検索結果ページで再度検索しても、キーワードを認識しない
最初は原因も分からず、四苦八苦していました。どうやらキーワードがcgiに受け渡されてないみたい。
何かヒントが無いかと、参考記事のコメントやトラックバックを探してみました。
すると、検索結果ページ分割(from MEDIAHEAD)に同じ箇所で引っかかっていた記事がありました。
記事によると、どうやら<form method>を変更すれば良いらしいです。
ヒントを元に試行錯誤した結果、無事に解決することができました。下記は対処策です。
まずは任意のテキストエディターで『…\search_templates\default.tmpl』を開いて下さい。
そして、28行目あたりの<form method="post"…>を<form method="get"…>にして下さい。
これでcgiにキーワードを受け渡すことができ、検索結果ページからも改めて検索をすることができるようになりました。
上書き保存して、FTPソフトで元フォルダに上書きアップロードすれば完了です。
(該当箇所は、当blogの検索オプションの付け方でも、念のためとして紹介しています。)
2.検索結果ページのページ番号に対するセパレータ(|)の位置が変(All pages辺り)
何のことか分かりづらいので例を挙げます。下記のような現象になります。
1 | 2 All Pages | >2の辺りが変ですよね? ALL Pagesの後に『|』が付いて、2の後に付いていません。
1 | 2 | All Pages >
本当は、このように表現したいのですよね。実際、カテゴリーとかは上記の形式で出力されます。
同じと思われる現象については、検索結果ページのページ分割(from 小粋空間)の5項にありました。
しかし、今度はヒントとなる記事が見つかりません。もはや、気合と根性でがんばるしかありません。
パターンとしては、『…\search_templates\default.tmpl』が怪しいのですが・・・。
何度見ても、現象に繋がりそうな問題点は見つかりません。正直な話、ココで5時間以上詰まりました。
数時間の試行錯誤の結果、ようやく解決できました。
ですが、この方法を紹介して良いのか、少々考えてしまいます。
まず結果から言います。
原因は、『MTPaginate.pl(Ver1.26)』のソースにおける記述間違いと思われます。
俺の解析結果としては、上記のような結論になりました。
当然、解決策はソースの修正になります。ですが、改造しても良いのかが問題です。
もしかしたら、違法改造などで訴訟問題が起こってしまうかも知れません。(^^;
MT Extensions(公式サイト)にも、カスタマイズに関する記述がないため判断できないです。
コメントによれば、「プルダウン型のページ分割にすれば良いのでは?」みたいな意見があるようですが、分かりません。
(2004年4月21日のコメントで、問題を指摘しているようですが、その後の経過が不明です。)
このまま使い続けるのも好きじゃないので、無許可で改造方法を公開します。
自己責任と言う点と、違法性があるかも知れない点をご理解頂いた方は、続きをご覧下さい。
(どうか、俺が訴えられたりしませんように・・・ナムナム。)
