Welcome to airkyon.com , enjoy your stay!

検索範囲から特定のページを除外する

2009年10月11日 - Posted by reibo - Inside [Blog] Word Press   このエントリをはてなブックマークに追加このエントリをYahoo!ブックマークに追加
11 10月.

 ちょっと調べたいことがあって、自身でblog内から「MP610」をキーワードに検索。
 と、blogへの投稿だけでなく、ページ(具体的にはPCのページ)まで検索対象として表示されてしまうことに気づく。これはウザい。
 以前のバージョンのWord Pressは検索対象が投稿だけだったらしいけれど、現在はページを含む全対象がデフォルトの検索範囲になる。多くの利用者にはこのほうが便利なのかもしれないが、Word Pressをサイト構成に用いている場合、その検索対象にしたくないページがあっても不思議じゃない。
 で、Search Everythingというプラグインを入れてみる。これは基本的に検索範囲を広げるプラグインなのだけれど、「指定したIDの投稿・固定ページ・カテゴリーを検索しない」という付加機能もあるらしいので。
 でも、ここからが面倒というか、悩まされたのね。
 特定のページを検索範囲から除外するには、設定から記事IDでそれを指定しなければならない。つまり、パーマリンクを設定しているので記事IDがわからない→パーマリンクをデフォルトに戻す→記事IDを確認して、Search Everythingに設定→パーマリンクを元に戻す。。。という作業が必要となる。
 ところが、そこまでやっても検索結果が変わらない。と言うか、検索結果がランダムで変わってしまう。同じ「MP610」をキーワードにして検索すると、先のPCページが表示されたりされなかったり…。そこには何の法則性も見られない。何なんだ、これ!?
 試しに「野村」というキーワードで検索してみると、これがまた見事に「not found」になってしまう。そんなバカな。

 Word Press 日本語サイトのトップページには、

確認されている制限事項: MySQL 4.0.x は UTF-8 に完全対応していないため、UTF-8 のブログで日本語によるサイト内検索やソートが正しく機能しないことがあります。WordPress 日本語版をお使いの場合は MySQL 4.1以上の使用を推奨します。

 とあるけれど、ひょっとしてこのせいだろうか。調べてみると、ロリポップ!はMySQL 4.0.24で該当する。

 また、その検索結果のPCページには、なぜかカテゴリーが表示されることにも気づく。投稿時のデフォルトに設定されているカテゴリーなのだけれど、なぜページにカテゴリーが表示されるのかもわからない。「うーん…?」と思いつつ、そのカテゴリー名がちょっとヘンだったので、変更してみる。
 これで再度検索してみたら。検索結果の同ページには、変更して既に存在しないカテゴリー名が表示されている。はぁ?? あり得ない。
 と、ここで、「もしや…」。以前の古いカテゴリー名…以前=キャッシュ? ひょっとして、キャッシュを使って表示を速くするプラグイン:WP Super Cacheのせいなんじゃ?
 そこで、同プラグインの設定で「Delete Cache」をクリックしてみると、検索結果に例のページが反映されなくなった! なーんだ、そーゆーことか。Search Everythingはちゃんと効いているのに、WP Super Cacheのおかげで正常に反映されていなかっただけなんだ。
 「野村」での検索が「not found」になったのも、「野村」を含む投稿がWP Super Cacheのキャッシュより最新だったからなのね。

 WP Super Cacheに関しては様々な弊害も指摘されていて導入を迷ったのだけれど、なるほど、こんなケースもあるわけか。。。

  Check  拍手する

コメントを投稿する

CAPTCHA


*