2011年10月01日(土)

ワードプレスのサイト内検索がうまく動作しない場合の対処方法

記事タイトルだけだとちょっとわかりにくいですよね。

「うまく動作しない場合」の症状ですが、トップページからサイト内検索をした場合はちゃんとした検索がされるのに、記事や個別ページから検索した場合はなぜか検索結果にならずそのページが表示されてしまう症状です。

ワードプレスで検索した場合、例えば当ブログであればこのようなURLに検索結果が表示されます。

http://45395.org/?s=★ここに検索したワード

どの記事やページにいようが、検索をした場合にこのようなURLになれば問題はありませんが、例えば「http://45395.org/othersites/」から検索した場合に、下記のようなURLになってしまったら、正しい検索結果にはなっていなかと思います。

http://45395.org/othersites/?s=★ここに検索したワード

サイト内検索をした場合は常にトップページURL直後に「?s=」がないといけません。


これは、使っているテーマ・テンプレートで独自にサイト内検索のシステムをカスタムしてある場合に起こることで、ワードプレスのインストール直後にデフォルトで設定されているテーマで起こることはありません。

お使いのテーマによって当たりハズレがあるという事です。

運営しているブログの中にもサイト内検索がうまく機能してくれないテーマがいくつかありました。

上記ブログは下記の方法で直しました。当ブログを修正したときの作業例です。

検索フォームが設置してあるファイルに進み、この部分を探します。
なお検索フォームを1つのファイルにし呼び出している場合もあるので、その場合は呼び出し先から該当部分を探してください。

ワードプレスのサイト内検索の不具合を修正する方法

赤線で囲んだ部分、これがうまく動作してくれない原因となっている場所です。
当ブログで使っているテーマではこうなっていますが、actionとmethodの順番が違っていたりするテーマもあります。

<form id="searchform" action="" method="get">

ここの『action』の値が空欄になっていますが、これが不具合の原因です。

ここにブログのトップページURLを呼び出してくれるコードを追記します。
これが呼び出しコード

<?php bloginfo('home'); ?>

これをactionの値に入れます。

action="<?php bloginfo('home'); ?>"

これでファイルを更新すればサイト内検索がうまくいくはずです。

スーパーキャッシュなどのプラグインを入れている場合はなかなか反映されないのでご注意を。
なお、コアサーバーなどでは管理画面上からファイルを修正することは基本できませんので、その場合はFTPからファイルをダウンロード後、修正して上書きアップロードしてください。

このエントリーをはてなブックマークに追加
はてなブックマーク - ワードプレスのサイト内検索がうまく動作しない場合の対処方法
[`yahoo` not found]
[`yahoo_users` not found]
[`evernote` not found]

  • © 2010-2018 試行錯誤 All Rights Reserved.