5
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

WordPressのhttps化によりサイト内検索が文字化けしてしまった

WordPressにてHTTPS対応をしたあとにサイト内検索機能が文字化けしてしまい、検索が効かなくなってしまいました。

色々調べてみましたが、同事象が発生している記事を見かけなかったので備忘録で残しておきたいと思います。

検索した際のURL
https://hogehoge.com/?s=%25E3%2583%2586%25E3%2582%25B9%25E3%2583%2588

この状態ですと実際に検索に使用される文字も「%25E3%2583%2586%25E3%2582%25B9%25E3%2583%2588」が使われてしまいどの記事にもひっかからなくなってしまいました。

そこで、以下を修正して対応しました。

wp-includes/query.php
    protected function parse_search( &$q ) {
        global $wpdb;

        $search = '';
        // ここを追記! urldecodeすることでパーセントエンコード?された文字列を復元
        $q['s'] = urldecode($q['s']);

        $q['s'] = stripslashes( $q['s'] );
        if ( empty( $_GET['s'] ) && $this->is_main_query() )
            $q['s'] = urldecode( $q['s'] );
             〜〜〜〜
    }

WordPressの内部をいじっているため、これが正解だとは思いませんが、他に対応方法がわからないため当面はこれで運用していきたいと思います。
もし他に良い解決策を知っている方いらっしゃいましたらコメントくださいませ!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
5
Help us understand the problem. What are the problem?