2022年11月22日に初出の投稿

Last modified: 2022-11-23

或るサイトの構築作業を担当したことがある。某旅客会社の採用サイトだ。残念ながら新型コロナウイルス感染症の蔓延という数年来の事情があったせいで、暫くの間は新規の募集予定がなくなったため、サイトそのものを閉じていた。これを再び公開する予定があるという。

このサイトも、ここ10年ほどの企業サイトについて一つのトレンドと言ってもいい大半の例に漏れず、 WordPress で組んだ一例である。これを再び公開するというので、まずはテスト用にどこかでサイトを動かしてみて、どこを手直しして再び公開するか確認したいとの要望がディレクターからもちかけられた。そこで、ヘテムルにテスト用のサイトを作ることとなったわけである。

まず第一に注意しないといけないのは、公開していたサイトの構成のままで復旧させるという与件があるので、ヘテムルの「簡単インストール」という機能は使えない。これを使うと、WordPress のコア・システムがドメインの直下に展開することとなるが、このサイトでは WordPress のコア・システムを wp-foobar という下層に配置したため、ヘテムルの機能を使うと実際に公開するサイトと運用の条件が変わってしまう。ということで、ディレクターにヘテムルでデータベースを1個だけ作成してもらい、その情報と専用の FTP アカウントを貸与してもらって、手動でインストールすることにした。

WordPress をテストの領域に展開する作業は終わった。しかし、過去にバックアップした WordPress の SQL ファイルを使って、元のサイトを再現するとなると、最も手堅い方法はデータベースの中身をクリアしてデータを入れなおすことだ。このサイトでは、クライアントが WordPress の管理画面そのものの扱いが難しいとのことなので、管理画面の表示を簡略化するプラグインとか、もちろん投稿画面も Advanced Custom Field という有名なプラグインを使って、専用のフォームのように仕上げている。その設定情報だけでも、SQL ファイルというテキスト・ファイルとして膨大な数になるため、こんな設定を WordPress の管理画面で改めて最初からやってはいられない。もちろん、ACF プラグインにもエクスポートやインポートの機能はあるのだが、実は既存の WordPress にインポートすると、連携するべき投稿とかページの ID が違うために投稿へうまく反映されないという問題が起きるので、ACF のインポート機能というのは、実は同じカスタム・フィールドを使う別のサイトを新規に作成するときしか使えないという問題があるのだ。よって、記事とプラグインの設定を同時に移したり復旧させるには、データベースそのものを truncate したり drop してテーブルやデータを入れなおす方が確実なのである。

だが、困ったことにテストサイトへ adminer のような MySQL (MariaDB) の管理ツールを置いても、データベースにアクセスしてテーブルの名前を変えたりはできるのだが、なんと insert が使えないという重大な問題がある。ヘテムルでここ最近になって採用して、勝手に動いている SiteGuard というセキュリティツールがクエリを遮断してしまうからだ。これは困った。もちろん、ディレクターにヘテムルのコントロール・パネルへのアクセス情報をもらえたら、コントロール・パネルでヘテムル専用の phpMyAdmin が使えるから、まさかそのツールで insert が遮断されることはあるまい。でも、他の案件でも使っているらしいヘテムルの全権をもらうのもどうかと思うので、他に何か手作業をしなくてすむ方法がないものか、検討している。ただ、既存のテーブルに新しく row を追加するだけなら insert が実行できているので、昨年の8月時点とでテーブルの構成が違っている可能性はある。でも、WordPress のコア・システムができる create が adminer の画面ではできないので、やはり何らかの条件で SiteGuard が遮断してしまうのだろう。

・・・という理由で困惑していたのだけれど、実はサイトを閉じる前に WordPress で編集可能な領域を固定した静的ページのような体裁にしてしまっていたらしいので、WordPress が殆ど mod_rewrite システムのようになってしまっていた。よって、大して問題もなくコンテンツは再び表示されたから、これはこれで問題ないのだろう。ただ、トップ・ページだけは ACF でスタイルシートのパスなどを入力してやらないと正しくページが表示されないため、これだけのために ACF の保存データをインポートして、Pages(固定ページ)を作成し、WordPress の表示設定でトップ・ページを作成済みの Pages へ指定する作業を行った。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook