WordPress TCDテーマのブロックエディタで、データが消えていく。

ワードプレスの進化

WordPressを使いだしたのは、2013年頃のバージョン3.5ぐらいからだ。それから、幾度となくバージョンアップが重ねられ、改悪もあったが、今はコンテンツ作成、メンテナンスが随分楽になった。ありがたいことだ。それに加え、テーマも秀逸なものが沢山リリースされ、公私ともにお世話になっている。

テーマとしては、仕事でTCDさんのテーマを使う事が多く、そこには独自のブロックエディタが搭載されるようになり、最初はその風体で面食らったが、使い慣れるとこれほど楽なエディタはないと感謝しながらコンテンツ作成、メンテナンスを行っていた。

データが消えている。

ある日私に電話があり、あるデータが抜けていると指摘が入った。消した覚えがないのだが、いやしかし、最近レンタルサーバのバージョンアップの影響でやむを得ず引っ越ししたばかりなので、なにかデータ移行時にデグレートしたのかと確認する。すると、確かにある箇所だけすっぽり抜けていた。頭をかしげながらバックアップを戻すのだが、バックアップを戻して差分の修正をすると、やはり同じようにデータが抜けてしまう。

php.iniの設定不足

この症状は以前もあったのだが、PHP.iniの最大入力変数(max inputvariables [max_input_vars])が初期値としてはコメントアウトで設定がなされていない状態になっており、これにより複雑なブロックエディタのコマンドが途中でバッファーオーバーフローした形になり尻切れトンボのデータ受け渡しが行われ、終盤データが抜け落ちるという現象が発生していた。なので、少ないコンテンツならデータが抜け落ちる事はないのだが、リスト項目の連なるような長いコンテンツになるとすぐにデータが欠落する事を確認している。この対策として、このPHPの項目を有効にし、更に数値を10,000程度に上げると不具合は解消する。

だがしかし

今回はこの変数を有効にしても一向に改善しない。

なぜだ。

指摘のあった場所は急ぎはしないが、コンテンツとしては重要な箇所だったのであまり悠長に構えられない。ウェブコンテンツ等、常に一般に晒されている待ったなしの環境でのコンテンツ作成、メンテナンスは一番気が滅入る所だ。よくニュースで銀行や証券取引所、航空チケットシステムトラブルが取り沙汰されているが、担当者は地獄をみているんだろうなと、いつも手を合わせるが如く悲壮感を感じながら見ている。

ウェブサイトなのでメンテナンス中とする事もできるが、そう長くもできない。焦っては駄目だと思いつつも早くしなければとどうしても頭の中を駆け巡ってしまうので正常な思考でいられなくなる。そうなるといつもならすぐに気が付く所でもすっ飛ばしてしまい修正が遅れる。データベースを直接編集等、ありとあらゆる事を試してみるのだが、まったく変化がみられない。

ワードプレスも日々のバージョンアップに伴い、同じようなブロックエディタにも変更が加えられ、少し古い時代のこのテーマは最新WordPressバージョンでは動かなくなってしまったのではないかと勘繰る

また、最近はGoogle方針のPageSpeedInsightsというページエクスペリエンス評価制度の所為で、やれjavaコードのインライン、非同期化だのキャッシュだの難癖付けてくれるので、それらを解決するためにプラグインやサーバにその対策を余儀なくされている。そのキャッシュの所為で変更がすぐに反映されない等、不具合修正に手間がかかってしまうのが現状。

まずは、プラグイン等のキャッシュに関連する項目をすべて停止する所から始めなければならない。そもそもページエクスペリエンス悪化の原因はGoogle AdsenseスクリプトやGoogle Fontが原因の大半を占めているので、「遅いからお前のサイトは減点」という評価がくだるこの理不尽さに怒りを抑えながらの作業により、更に焦りが加わる。

特にテーマメーカが作った箇所はブラックボックスといってもいいぐらい複雑なので、自己解析は難しい。今回は、関係各所に頭を下げ、しばらく時間をもらう事にした。

テーマメーカー、各部署に問い合わせ

そのブラックボックスを解明するが如く、レンタルサーバ、テーマメーカー各メーカーにメールで質問する。最近は働き方改革というずぼらを助長する政策により、コロナの影響もないとは言えないが、このメーカだけではなく、どの企業も著しいサービス低下が見受けられ、電話問い合わせはほとんど停止されている。しかし、この政策を掲げても一人当たりのGDPは一向に回復せず、それどころか、生産性の悪化が顕著にみられ、円安の追い打もあって日本経済自体脆弱化、景気悪化を一途をたどっている。

閑話休題

翌日、TDCからの連絡があったが、基本、コンテンツトラブルはノータッチという内容だった。まぁ、もとから保守関係は契約に含まれていないから当然の対応といえば対応なので、悪く言うつもりはないが、自分たちが提供しているエディタなのに「なんでや」と少し頭を傾げてしまう。レンタルサーバ側からは、結局催促してやっと数日後に返事があったが、PHP関係の内容精査は不可能で、他のサイト記事等を見て自分で解決しやがれという内容だった。

ダメ元という言葉がぴったりなのだが、一応聞いてみたが、やっぱり駄目だった。レンタルサーバからのメールの最後には、サポート多忙につき遅れましたとの言い訳が書いてあった。

しょうがないので、自分で色々と試行錯誤する。

  • 子テーマを使ってたので、親テーマを適用しなおす。
  • 不要なプラグインを外す。
  • データを正常稼働時のバックアップから戻す。
  • データベースから直に内容を確認してみるが、特におかしな所もなかった。
  • 新規でページを作成しなおしてもやはり、ある行数を超えると再発する。

もう悩んでいる時間もないので再インストールまで考えたが、よくよく考えるとPHPが反映されていない症状なので、基本に戻ってPHPの指定方法が間違ってないかを再度洗ってみた。

調査方法

編集したPHPが反映されているかを確認する。

  • 方法1:phpinfoコマンドで内容を確認する。
    以下のスクリプトをphpinfo.php(名前は何でもいい)ファイルに保存し、PHP.iniファイルがあるフォルダに保存して実行し、表示された内容を見て確認をする。
<?php phpinfo(); ?>

実行結果

  • 方法2:WordPressの管理画面から確認する。
    メニューツールサイトヘルスを開き、最後に情報タブを開く。その中に、「PHP 最大入力変数 (max input variables)」項目があるので、PHPで編集した数値になっていないと、正常に反映されていないという事になる。

結果をみると、やはり編集したphp.iniが正常に反映されていなかった。

原因は、phpバージョン、編集phpファイルの指定

レンタルサーバの仕様が変わり、.htaccessファイルにphpバージョンの指定と、phpファイルの変更を行った場合は下記のように絶対パスを記す必要があったのだが、

AddHandler x-httpd-php80 .php
suPHP_ConfigPath /usr/home/xxXXXXXXX/html/

移行前のシステムから、そのファイルをご丁寧に各ディレクトリに一つずつ設置していたもんだから、修正できていない引っ越し前のアカウントのままになっているファイルがあり、それに気が付かなかったのでそのディレクトリ配下のPHP設定がそこでエラーになっていたのが原因だった。

その各ディレクトリにある不要な.htaccessファイルを削除する事で正常にPHPが反映され、症状は出なくなった。はい、私のミスでした。大変お騒がせしました。

ただ、こういう切羽詰まった問題に対して親身に対応するのが、本当のプロというものだとおもうのだが。(バイオレット・エバーガーデン談(←嘘))

考察

焦らず冷静に判断すればすぐに判った問題だったのだが、やはり焦ってしまう性分に邪魔されてしまった。こういうときは自分の性格を恨んでしまう。また、そういう時に限って別のトラブルが数件重なってくるもんだから、運が悪いという被害妄想が追い打ちをかけ、頭の中はパニックとなってしまう。

総じて人と時間が足らん。何が働き方改革だ。勿論過労はだめだが適度な労働は体に良いし、この制度の所為で精神が逆にひっ迫ストレスとなり体に悪くなっている。

少し前にコーヒーのコマーシャルにあったが、勝手に仕事のできない世界にするのは、ほんとに勘弁してほしい。その通り、二度と来てほしくないと思った。

編集後記:一寸にも足らない戯言

なんですか?防衛費ですか?
そもそも、戦争自体がなければ、この防衛費等に使われる膨大なお金でどれだけの人が幸せになれなるんだろうかと思う今日この頃。何の為のお金で誰の為の防衛なのか。尊大不遜な政治家達によるスポーツの祭典という名の金儲けといい、温暖化対策という名の原発推進といい、人類は動物の喧嘩、縄張り争いをみて嘲笑っている場合ではなく、自分たちこそが愚かと早く気が付くべき。日本でも応仁の乱から戦国時代が150年も続き、なんの関係もない人々が個人の醜いプライドという権力争いに巻き込まれ被害にあった。現代の人間が戦国時代を嘲笑するように、何年、何百年先になるかわからないが、戦争のなくなったこの地球で、過去の人類が犯した愚かさを笑う日が早く来ないかと願うばかりである。