最近、借りてるサーバをXserverにしたのをきっかけにまずはバンドのサイトをSSL化しました。
https://fauntime.com
暗号化がどーたらとかそういう理由もなく、Xserverなら無料でSSLが使えるのでなんとなく。
このサイトはWordpressで構築しているのですが、WPのSSL化は以下の手順。
- まずはXserverの管理画面でドメインに対してのSSL発行
- WordPressの設定画面からURLの変更
- 内部リンクをSearch Regexで全て置換
- htaccessにリダイレクト用のコードを追記
- SSLのエラーチェック
というのがおおまかな手順。
すんなり行くかなーと思いきややっぱりそうはいかない。
こういう作業には必ず何か罠が潜んでいる。
3の「内部リンクをSearch Regexで全て置換」の所ですこし手間取りました。
Search RegexはWordpress内のデータ置き換えツールとしてそれなりにメジャー。
それで「http://~」を「https://~」で書き換えりゃOKだと思ってたんですわ。
しかし、このバンドサイトはテーマが「カスタム投稿タイプ」を使用しているんですな。
Search Regexはそのままでは投稿と固定ページ内のみしか検索で拾ってくれんようで・・・
置き換えた後、サイトを見に行くとあちこちで出るわ出るわ「混在してます」エラーが。
これだとサイトを閲覧していても非常にうっとうしい。
このWordpressテーマ「Music Club」はライブ情報の部分がスラッグ「event」のカスタム投稿タイプ。
なので、Search Regex本体を書き換える事で無理矢理対応。
WP管理画面の「プラグイン」→「プラグイン編集」からSearch Regexを選択。
そこでsearch-regex/searches/post_content.phpを選んで編集画面に入ると・・・
<?php class SearchPostContent extends Search { function find( $pattern , $limit , $offset , $orderby ) { global $wpdb ; $sql = "SELECT ID, post_content, post_title FROM {$wpdb->posts} WHERE post_status != 'inherit' AND post_type IN ('post','page') ORDER BY ID " . $orderby ; |
という感じで7行目に明確にpost(投稿)とpage(固定ページ)が宣言されております。
ここに
<?php class SearchPostContent extends Search { function find( $pattern , $limit , $offset , $orderby ) { global $wpdb ; $sql = "SELECT ID, post_content, post_title FROM {$wpdb->posts} WHERE post_status != 'inherit' AND post_type IN ('post','page','event') ORDER BY ID " . $orderby ; |
とライブ情報ページのスラッグ「event」を足してやれば、Search Regexの検索結果にライブ情報ページの物が出てくるようになります。
あと、このテーマは内部のページビルダーを使えますが
そのビルダー内で作った部分もSearch Regexでは拾ってはくれませんw
結局、手作業の方が多いじゃねえかクソ野郎!っとも思ったし、
この作業終わってから自分が書いた「[WordPress]内部のパスを一気に書き換えるスクリプト」という記事を思い出したりしてなんかもうワヤですわ。
多分「SEARCH REPLACE DB」の方が良い仕事すると思います・・・・
Search Regexで悩んでる人の為に書き記してはおきますが(笑)