WordPressで様々なプラグインを導入すると、おのずとそのプラグインのメニューが増えたりしていきます。
私のプラグインは殆どが、管理画面をカスタマイズするものなのですが、プラグインで管理画面にエラーが出る場合には大抵、他のどのプラグインを有効化した時にエラーが出るのか、超地道にひとつずつ調べています。 😳
今回も、多分アメリカ?の方から「動かないよーどうなっているだYo! 😈 」とメールをいただき、「動かないのは分かったので、どういう設定をしているのか教えてYo! 😳 」をもっと丁寧な感じにした英語で返事をして、さっそく調べていました。
まずは出来る限り同じ環境へ
相手の方がお見せ出来る限りの環境(管理画面のスクリーンショットやプラグイン一覧画面等)を見せていただき、私もローカルサーバに同じように環境づくりをします。
WordPressのバージョンも同じバージョンにOK。プラグインの一覧・バージョンもOK。
で、さっそくやってみると…
はい、確かにエラーとなります。 🙁
でも、ここでやっかいに感じた部分。。
それは、「微妙に保存されている、ような、いないような 😕 」。。
まぁ、そんな事は後で考えようか。(本当は一番の原因に関係すること)
そして、一つずつぽちぽちと、プラグインを有効化して無効化、有効化して無効化… 😆
をやってみるのですが、どのプラグインの場合でも同じようなエラーがでました。 😕
ユーザー権限の問題だろうか。 😕
はたまたWordPressのバージョンが上がった時の何かの影響なのだろうか。 😕
と思い、バージョンダウンして試してみたりしましたが、これもやはりダメ。。
それからも色々試してみて、少し発見したことがありました。
「Woocommerceと何かを有効化すると、結構な確立でエラーが出る」という事でした。 😕
(誤解された方がいたらすみません、Woocommerceはエラーが良く出る。という訳ではありません。詳細は下記をお読みください)
って事は、Woocommerceの問題なのかな~と目星をつけ、またひたすらトライ&エラーの繰り返し。
それからまた分かった事は、「メニューの数が多い時だけ、エラーになる」という事でした。
(Woocommerceはたまたまメニューの数が多かっただけ)
ふーん。なるほど~。。わかりません。 😳
色々と設定をいじくり、なんとか画面にPHPのエラーが出るようにしました。
ログよりも、画面にエラーが出ると、どのタイミングでのエラーなのか分かりやすいです。 😮
で、そのエラー文をもとに色々とググっていると、phpのmax_int_varsという設定にたどり着きました。
max_int_vars でぐぐると、ほぼ確実に同じような状況のエラーについて書かれた多くのブログがあります。
なるほど、フォームのアイテム数が指定した数よりも多すぎる。という事なんですね。
その数を指定する項目が max_int_vars。
しかもそれが、PHP 5.3.9 以降だなんて。。それは知らなかったよ。。 😥
かと言って、フォームの数を減らせばOK!
という解決策では上手くいかないので、どういう風にすればフォームの数を”PHP”上で減らす事が出来るかな~と試行錯誤すると、あっさり解決。 😐
原因がWordPressもしくはプラグインのほうにある。とばかり思い込んで原因を探っていたのでかなり時間取られました。。
色んな方面から原因を考えられるようにならねば。 🙄