WordPress内で検索されない
2015年05月27日 水曜日以前のWordPressのVersion 4.1.3以降のアップグレードでやたらと不具合が出ていて、「公開」ボタンが無く、「レビュー待ちとして送信」ボタンしかないという状況は何とか解決したけれど(Xrea増設とWordPressの「レビュー待ちとして送信」を解消)、「ダッシュボード」の「投稿一覧」の右上にある「投稿を検索」ボックスで英語で検索すると検索結果が出るのに、日本語で検索すると「投稿が見つかりませんでした。」と必ずあるはずの投稿のタイトルや本文にある単語が引っ掛からないという状況になってしまっていた。
これが非常に困る。テレビでスティーヴン・セガールの映画を放送する時、原題とは関係無く邦題にやたらと「沈黙の~」と付いて、どれも似た様な内容な映画ばかりなので、果たしてその映画を見たのか、まだ見ていないのかをさっぱり覚えておらず、これまで見た分はこのブログに書いているので検索すればすぐ見たか見ていないか分かったのに、検索結果が出て来ないとなると非常に不便。
訳が分からないので検索検索。
色々調べてみると、以前の「公開」ボタンが無い事も、WordPress用のデーターベースMySQLの文字コードが「EUC-JP」のせいらしい。
元々WordPress使い始めた時、多分日本語版がWordPress MEしか無かったのでWordPress MEで始めたのだけれど、その時よく分からないのでそのままデーターベースを作った時「EUC-JP」だったらしい。
もう今のWordPressは「EUC-JP」に対応していないみたいで、「UTF-8」にしないと問題が出るみたい。
しょうがないので、サーバーの管理画面からデーターベースの文字コードを変える為に、「MySQLの保存 → 削除 → 文字コードをUnicodeにして作成」をして、サイトのトップディレクトリに保存された「mysql.dump」をダウンロードして、PhpMyAdminから「インポート」でこの「mysql.dump」を読み込んだ。
本来、この「mysql.dump」のデータを何か色々いじらないといけないみたいなんだけれど、ただそのまま読み込んだだけでブログはちゃんと表示されていた。
そこで「投稿一覧」の「投稿を検索」ボックスで検索してみたけれど、やっぱり検索結果が出て来ない…。
検索してもよく分からないので、もうこれはデーターベース内のデータの文字コードの問題だと思い、PhpMyAdminで色々見てみる。
トップ画面の「サーバ接続の照合順序」は「utf8_general_ci」になっている。
WordPressの個別のテーブルを見てみると、「照合順序」が「utf8_general_ci」と「ujis_japanese_ci」が混在している事に気付いた。
「ujis_japanese_ci」になっているテーブルにチェックを入れ、上部の「操作」ボタンを押して「照合順序」のプルダウンメニューから「utf8_general_ci」を選んで「実行」を押す。しかし、実行したはずなのに「ujis_japanese_ci」のまま。
困ったので、多分検索の文字コードに関係しているだろう「wp_posts」のテーブルの「構造」を押して中を見てみると、並んだ項目の中に「照合順序」が「ujis_japanese_ci」になっているモノが幾つもある。この項目の一つ一つ「変更」を押し、「照合順序」を「ujis_japanese_ci」から「utf8_general_ci」に変更して「保存する」を押して、「wp_posts」内の項目全部を「utf8_general_ci」にした。
すると、一番上のに表示される「wp_posts」のテーブルの「照合順序」も「utf8_general_ci」になっていた。
これで「投稿一覧」の「投稿を検索」ボックスで検索してみると、ちゃんと検索結果が表示されるようになった。
他の「ujis_japanese_ci」になっていた項目も「utf8_general_ci」に変更しておいたけれど、特に文字化けも無い様なので成功なのかしらん?