プラグインsmart custom fields。
WordpressではAdvanced custom field(ACF)に次ぐくらいお馴染みではないだろうか?なんといってもカスタムフィールドの繰り返し入力設定ができるプラグインであり、無料という点ではACFに勝っている大きな点だろう。
繰り返しの繰り返しと入れ子を作ることができないという難点もあるが、そこは工夫次第でなんとかするとしてだな、基幹をなすプラグインとしても足を向けることのできない存在となっている。
しかし事件は起こった。
もうクライアントの意向で1ページに持たせる情報が数重もあり、smart custom fieldsで大量の項目を作っていたときだった。項目をもう一つ増やそうと思って「更新」ボタンを押したら、こんなエラーが出てきた。
「辿ったリンクは期限が切れています。
This message was triggered by smart-custom-fields.」
むむ、なんだこれは…。プラグインを全部外してみる。functions.phpも空にしてみる。しかしエラーは同じ。アップデートしてみるが変わらない。しっかりスタックしてしまったのだ。
飯を食ってから気を取り直し、別の数個しかまだ設定してないsmart custom fieldsでも試してみようと、3つくらいしかまだ登録してないものに一つ追加してみると、すんなり更新できた。
「え、ということは、、smart custom fieldsの限界まで来ちまったのか?」
と思った。たしかにえらい項目数だ。70くらいあるだろうか。
Googleで「smart custom fields 限界」などと探してみると以下の記事が見つかった。
Smart Custom Fields で更新ボタンを押すたびにデータが消えてしまうとき
https://www.postit-web.com/2016/10/12/smart_custom_fields_data/
ちょっと症状は違うが、「Advanced Custom Field」でも、同じような現象が起こるみたいですね。とあるように、POSTする数が大量だと起こる現象のようだとわかってきた。
さっそくサーバーのphp.iniを編集だ。
# vi /etc/php/8.2/apache2/php.ini
この行を探す。
; How many GET/POST/COOKIE input variables may be accepted
;max_input_vars = 1000
↓
max_input_vars = 5000
1000から5000に変更してapache2を再起動。レンタルサーバーなら、そのサーバーの仕様に沿ってmax_input_varsを変えてやればいい。たいがいは管理画面とか.htaccessから操作できるはずだ。
再度更新を試してみると、成功した!しかもいつもよりだいぶ速い、気がする。
とにかく、やりすぎは何でもよくない。だがそれでもやらなければならないとき、それができる力を身に着ければよいのだ。俺のサーバーもまたマッチョになってきたな。