« 検索オプションの付け方 | メイン | 昨日はクリスマス~♪ »

2005年12月25日

●ページ分割してみました。(検索結果ページ)

少し前に月別やカテゴリーなどをページ分割してみました。
今度は、検索ページも分割してみようと思います。
検索ワードによっては、一番表示するエントリーが多いかも知れませんからね。

てことで、いつもと同じですが参考記事です。てか、俺は自分で考えれるほど能力無いので。(^^;
方法は、検索結果ページのページ分割(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日のコメントで、問題を指摘しているようですが、その後の経過が不明です。)

このまま使い続けるのも好きじゃないので、無許可で改造方法を公開します。
自己責任と言う点と、違法性があるかも知れない点をご理解頂いた方は、続きをご覧下さい。
(どうか、俺が訴えられたりしませんように・・・ナムナム。)

トラックバックURL

このエントリーのトラックバックURL:
http://neta20000.net/cgi/mt/mt-tb.cgi/15

コメントする