PHP7以降にした後に検索ボックスでエラーが起きた時の対処法

こんにちは、Mioです。

今までずっと非推奨のphp5.3.3を使ってきたのですが、先日思い切って一番新しいphp7.1にしてから快適に過ごしていました。

これでセキュリティも強化できたかなと。

最初はどこかでエラーが出たり、不具合が起こったらどうしようと恐る恐るブログを点検したのですが、とりあえず見たところ何も問題はなさそうだったのですっかり安心しきっていました。

ところが、再度くまなくブログ内をチェックしていたところ一つエラーが出ていることに気づきました。

それは、検索ボックスのエラーで何か文字を入れて検索ボタンをクリックするとわけのわからない英文が表示されるというものでした。

幸い、割とすぐにその原因がphpをバージョンアップしたことで起こったものと確認できたので今回はその対処法についてご紹介します。

検索ボックスで表示されたエラー

このエラーはテーマによるもので、当ブログで使っているsimplicityでは何も問題がありませんでした。

当ブログだと検索ボックスはこんな感じ。

普通であれば、ここに何かしら文字を入力すればそれに関連した記事が表示されるわけなんですがphp7.1に変更して以降こんな英文が表示されました。

何だこれ?…(; ・`д・´)

もしユーザーさんがそういえばあの記事もう一回見たいけどタイトル何だったっけな~とかで、ふと単語を検索した時にこんな英文だけ表示されていたら、えっ?ってビックリしますよね。

そしてすぐにそのページやブログ自体から離脱してしまうでしょう。

この英文は、一見何やらわからない文章ですがよく見るとエラーの箇所がご丁寧に表示されています。

私は、別のブログでrefine proをテーマに使っているのですがそのテーマのsearch.php(検索結果)の17行目を修正せよということでした。

というわけで、リファインプロのsearch.phpを修正していきます。

search.phpの修正箇所は「new文」

管理画面の外観から「テーマの編集」、search.php(検索結果)を探しクリック。

英文に記載がある通り、「new」という文を修正する必要があるのでそれをまずは探します。

ctrl+Fキー「new」を検索すると修正すべき箇所が一発で出てきます。

search.phpの17行目には、次の一文がありました。

$allsearch =& new WP_Query(“s=$s&showposts=-1”);

newの前に&と半角のスペースがありますが、この&がエラーを引き起こしていたようです。

なので、半角スペースは消さずにそのままでこの&をただ消すだけです。

消したらこんな感じになりますね。

 $allsearch = new WP_Query(“s=$s&showposts=-1”);

修正したら「ファイルを更新」ボタンをクリックします。

検索ボックスで何か文字を入力して検索をかけてみると、普通に関連記事が表示されるようになるはずです。

これで修正は完了です。

プラグインエラーなど他に不具合が出ることも

php7以降にすることで、環境によってはプラグインでエラーが起こることもあるようです。

私の場合は検索ボックスでのエラーだけだったのですが、もし他にも何らかのエラーが出たら一つ一つ原因を探ってみて修正していく必要があります。

もしプラグインが原因だと思ったら、まずは一旦停止してみてそれで不具合が改善されるようであれば削除するなど対応していきましょう。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする