ハナモゲラボ / 試行錯誤の実験人生

日々、PCや各種デバイス、楽器等に翻弄されながら電脳の森をさまよう男の日常と様々な実験をさらりと記しております。

WordPressをSSL化 ― Search Regexに潜む罠とは

February 01 2017

最近、借りてるサーバをXserverにしたのをきっかけにまずはバンドのサイトをSSL化しました。
https://fauntime.com
暗号化がどーたらとかそういう理由もなく、Xserverなら無料でSSLが使えるのでなんとなく。

このサイトはWordpressで構築しているのですが、WPのSSL化は以下の手順。

  1. まずはXserverの管理画面でドメインに対してのSSL発行
  2. WordPressの設定画面からURLの変更
  3. 内部リンクをSearch Regexで全て置換
  4. htaccessにリダイレクト用のコードを追記
  5. 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で悩んでる人の為に書き記してはおきますが(笑)

| Posted in Wordpress | Comments (0)

Post a Comment

※メールアドレス、URLは任意入力です。メールアドレスは入力しても公開されません。

« Jun 2017 July 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31