WordPressでカスタムメニュー項目の制限を修正する方法

数日前、ユーザーの1人から珍しい問題が報告されました。その問題とは、カスタムメニュー項目の上限に達してしまうというものでした。メニュー項目の上限に達した後で保存したものは、一切保存されなくなってしまいます。私たちはこの問題を聞いたことがなかったので、ローカル環境で試してみることにしました。200以上のメニュー項目を作成して保存しましたが、問題なく動作しました。100項目をドロップダウンに移動させましたが、それも問題なく保存されました。その時点で、これはサーバーに関連する問題だと確信しました。さらに調査を進めると、同じ問題を抱えている人が他にも多くいることがわかりました。さらに詳しく調べると、この問題を浮き彫りにしたTracチケット(#14134)が見つかりました。非常に長いTracチケットを読んだ結果、この問題はまだ修正されていないようですが、この問題を抱えている人向けの回避策があります。この記事では、WordPressでカスタムメニュー項目の上限を修正する方法を紹介します。

この問題を解決するには、PHP.iniファイルを編集する必要があります。専用サーバーまたはルートアクセス権のあるVPSをご利用の場合は、すでに何のことかご存知のはずです。共有ホスティングをご利用の場合、またはPHP.iniファイルがどこにあるかわからない場合は、ウェブホスティングプロバイダーに依頼してください。

PHP.ini設定で以下の値を設定するように依頼する必要があります。

suhosin.post.max_vars = 5000
suhosin.request.max_vars = 5000

他のユーザー「ronnieg」が、彼の大きな(450ページ以上あり、増え続けている)不動産サイトとメニューのために行った回避策を投稿しました。彼の応答を読むと、それに沿って進むことができます。(注意:私たちはこれを試していません)

問題の説明

This problem is not entirely WordPress based as different folks are seeing different limits (some say 16 others say 50 and as you already know we went as high as 200 without seeing any limits). In theory, WordPress is not limiting the number of menus you can have. Your web hosting server is. There are Suhosin limitations on the POST max variables which is limiting the large number of entries being saved. Nacin replied in the trac ticket to say that this is NOT a bug rather it is an enhancement. The core team has to find a way to work around the server limitations and figure out a better way to save the menu items, so regardless of your server configuration you do not see any custom menu limits. It’s easier said than done :)

WordPress はオープンソース(ボランティア)プロジェクトであり、コアチームは日々改善に努めています。これは修正されるでしょうが、現時点では「将来のリリース」と記載されているため、具体的な時期は定義されていません。

もしこの問題を解決した別の方法を試された場合は、コメントで教えてください。これにより、コアチームが回避策を見つけるまで、他の人が問題を解決できるようになります。

開示:当社のコンテンツは読者によってサポートされています。これは、当社のリンクの一部をクリックすると、当社が手数料を得る可能性があることを意味します。WPBeginnerがどのように資金提供されているか、それがなぜ重要か、そしてどのように私たちをサポートできるかについては、こちらをご覧ください。当社の編集プロセスはこちらです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

80 CommentsLeave a Reply

  1. こんにちは!共有ホスティングを利用しています。そのため、php.iniファイルを編集するためのrootアクセスがありません。どうすれば問題を解決できますか?

  2. Hi

    外観 -> メニュー -> クリック -> リダイレクト先 -> 404ページ

    ウェブサイトにいくつかのメインメニューとカテゴリを追加しました。しばらくすると、メニューを開いて何かを変更したり削除したりできなくなりました。ウェブサイトが404ページにリダイレクトされます。多くのコードを試しましたが、何も機能しません。助けてください。

  3. 私も同じ問題に遭遇しました…しかし、私はローカルホストで作業しており、助けを求める相手がいません!(Windows 10/XAMPP/WP4.8)。WP初心者で、php.iniがどこにあるかもわかりません!私の「簡単な解決策」は、重要度の低いサブメニュー項目をいくつか削除することでした。しかし、それらをすべて元に戻したいのです。上記のメモリバンプを確認しましたが、古いものです。WP4.8では機能しないかもしれません!リスクを冒す価値はありません!

  4. こんにちは。

    素晴らしい情報ありがとうございます。Webrootに以下の情報を持つph5.iniファイルを作成することで、GoDaddyホスティングの問題を最終的に解決しました。

    memory_limit = 256M;
    max_execution_time = 300;
    max_input_vars = 3000;

    カスタマーサービスによるデータベースのリセット後に問題が解決しました。これは私にはできませんでした。お役に立てば幸いです。

  5. こんにちは、ありがとうございます

    この問題を抱えていました。メニューが長かったのですが、ある日50行に減ってしまいました。テーマサポートがこのトピックに送ってきました。すべてのオプションを試しましたが、ホスティングサポートに連絡しなくても、私には1つしか機能しませんでした。

    「#end of wordpress」行の前に、「php_value max_input_vars 5000」(引用符なし)を.htaccessファイルに追加したところ、問題が解決しました。

    • ありがとうアントン!.htaccess ファイルを使った方法で私のウェブサイトは救われました!ありがとう

  6. こんにちは、チーム

    HostgatorのマルチドメインSSLを使用しています。

    設定を確認しましたが、どこでどのように行えばよいかわかりません。

    php.ini ファイルに max_input_vars=9000; というコードを追加しましたが、メインメニューにメニュー項目を追加できません。

    誰か助けてください。大変感謝します。

    敬具、
    -Rams

  7. 今まさにこの問題に直面しています。ホストに連絡したところ、共有サーバーのため 5000 変数まで増やすことはできない/しないと言われました。他に解決策はありますか?同じページに 2 つのナビゲーションメニューを設置することは可能ですか?それで問題が解決するでしょうか、それとも単に続くのでしょうか?

    事前に感謝いたします。どのようなご協力でも大変ありがたく思います。

  8. 素晴らしい。私も長い間、原因不明で同じ問題を抱えていました。多くの人に尋ねました。今日、ようやく問題を解決しました。ホスティングゲイターのコールセンターの担当者に電話する必要はありません。自分でできます。本当に助かりました。感謝の言葉もありません。

  9. Mahalo nui loa (どうもありがとう)!

    これはBluehostの共有ホスティングにあるクライアントのサイトで機能しました:
    1. Cpanel > ファイルマネージャー
    2. public_html > wp-admin
    3. 「新規ファイル」をクリック > php.ini と名前を付ける(このファイルがまだない場合)
    4. php.ini をクリック > 「編集」をクリック > もう一度「編集」をクリック
    5. 次を貼り付け:max_input_vars=5000; > 保存 > 完了

    • 私の場合はこれでうまくいきました!あなたは私の天使です!素晴らしい共有です。この問題に2日間悩まされていました。本当にありがとうございます!

    • Reneeさん、これは私のクライアントにも機能しました。ありがとうございます!彼らはHostGatorでホスティングしています。

      • 試しました、

        .htaccess ファイル内:
        php_value max_input_vars 5000

        php.ini ファイルで:
        max_input_vars=5000;
        upload_max_filesize = 70M;
        post_max_size = 128M;
        upload_tmp_dir = 70M;
        max_input_vars = 3000;
        memory_limit = 256M;

        .user.ini ファイル内:
        max_input_vars=3000;

        また、php.ini と .user.ini を wp-admin の内外に配置してテストしましたが、何も効果がありませんでした。

        .htaccessに追記したところ、wp-adminページが真っ白(空白)になってしまいます。
        私のホスティングは

        どんな助けでも感謝します。TIA

  10. GoDaddyを使用していますが、php.iniの修正は全く効果がありませんでした。Godaddyは、そのページやコードを有効なものとして認識すらしていません。

    Godaddyの担当者からサポートを受けて、回避策を提供してもらいました。

    HTML フォルダに .user.ini (ドット・ユーザー・ドット・イニ) という名前のページを作成しました。そのページに次のコードを追加しました。

    max_input_vars = 3000

    今のところうまくいっているようです。

    • htmlフォルダに.user.ini(ドットユーザー・ドット・ini)というページを作成しました -> PUBLIC_HTMLフォルダにファイルを作成したということですか?

      godaddyサーバーでも同じ問題が発生しているので、確認をお願いします。
      そして、1週間も連絡が取れていません。

      なぜGoDaddyに連絡するのがこんなに難しいのか分かりません。

      • Akut ゴーダディも使っています。

        php.iniファイルは、php.admin内ではなく、ファイルマネージャーのpublic_htmlフォルダ内に見つかりました。php.iniファイルを作成する必要もありませんでした。

        GoDaddyはWPの問題だと考えているようで、その特定の件でたらい回しにされました。

        ファイルサイズの上限を増やすように指示されました。(同じ修正ではありません)。

    • このソリューションは、1and1ホスティングプラットフォームで機能した唯一のものでした:

      HTML フォルダに .user.ini (ドット・ユーザー・ドット・イニ) という名前のページを作成しました。そのページに次のコードを追加しました。

      max_input_vars = 3000

    • Louさん、最初の確認(そして最初のテスト)で完璧に機能したようです。ありがとうございます!

      他に問題が発生した場合は更新します。

  11. WordPressサイトにサブメニューを追加する際に問題が発生し、カスタムリンクに変換されてしまいます。
    このエラーを解決するのを手伝ってください。

  12. WordPress を削除して、Magento に移行するのが最善の解決策です。2ヶ月試行錯誤した後、これでうまくいきました。

  13. Ubuntu VPSでは、以下のようにコメントアウトを解除して値を高く設定することで修正できました。

    max_input_nesting_levels = 500
    max_input_vars = 5000

    とにかく、解決策への道を示してくれたので感謝しています

    • 愛してるよ、君!
      君のこの解決策は、私の別の問題も解決してくれた!その問題は

      「メニューを「メニュー編集」タブで保存した後、「メニュー設定 -> テーマの場所」のチェックが保持されず、「場所の管理」タブでメニューの場所が削除されてしまいました。」

    • やあ、
      WordPressのマルチサイトを実行していて、サイトにカスタムフィールドを追加するのに問題があります。何も試しましたがうまくいかず、max_input_nesting_levels = 500を増やすというあなたの回答を見ました。VPSのUbuntu 16.04でPHP.Iniファイルでこの値を増やそうとしましたが、うまくいきませんでした。info.phpにはまだmax_input_nesting_levels = 64と表示されています。この値をどのように増やしたのか、PHP.iniファイル経由なのか、それともhtaccessファイル経由なのか教えていただけると幸いです。

      よろしくお願いいたします。

  14. HostGatorの皆様 – 同じ問題 & これで解決しました:

    1. Cpanel > ファイルマネージャー

    2. public_html > wp-admin

    4. 「新規ファイル」をクリックし、php.ini という名前を付けます(このファイルがまだない場合)。

    4. php.ini をクリック > 「編集」をクリック > 再度「編集」をクリック

    5. ペースト: max_input_vars=5000; > 保存 > 完了

    • こんにちは、

      私のサイトはgodaddyでホストされています。wp-adminにphp.iniを作成し、max_input_vars=5000;という一行を貼り付けました。

      メニューをさらに追加できませんでした。

    • ご提案ありがとうございます。あなたの提案に従って max_input_vars=5000; を含む php.ini ファイルを追加したところ、問題が解決しました。改めて感謝します。

    • 1 – テキストファイルを作成します
      2 – 次を貼り付けます:” max_input_vars=5000; ”(引用符なし)
      3 – php.ini として保存します
      4 – public_html > wp-admin にFTPで接続します

      PERFECT
      Thank you!!!

    • 私のウェブサイトでも同じ問題が発生しています

      私のサイトはHostGatorでホストされています。php.iniファイルを/wp-adminに追加しましたが、私には機能しません。助けてください。

  15. 私もこの問題を抱えています。Studio Pressの技術者にこのサイトを勧められました。Host Gatorの共有ホスティングアカウントを持っています。3000や5000では何も進まなかったので、max_input_varsを7000に引き上げてもらいました。お勧めのphp.iniをwp-adminに作成しました。それでもうまくいきません。wp-adminに作成したので、publicフォルダのphp.iniを削除する必要はありますか?解決するために一生懸命頑張っています。ありがとうございます。

  16. 共有ホスティングなので、php.ini をルートフォルダに置いても効果がありませんでした。しかし、wp-admin フォルダに置くと効果がありました。これは、nav-menus.php ファイルが wp-admin フォルダ内にあるためだと思います。

  17. 皆さん、…はい、私もこのメニューの問題/不具合に遭遇しました…そして、それはひどいものでした!!! 50ページから100ページの間で、メニューに追加した最後の項目が削除されたり、メインメニューのナビゲーションから落ちたりしていました!何だって?!!!

    初心者も玄人も、この(問題)について知っています…これは私のケースについてのみ話していますが、同じ悪夢を経験した誰かの役に立つことを願っています…さあ、始めましょう。

    HostGator の「共有ホスティング」では、「suhosin」はありません。これは、HostGator の担当者によると、PHP のスクリプトエラーに対するパッチ/プログラムであり、「サーバー」を保護するために設計されているとのことです。…この詳細にもかかわらず、続けます…私のケースで重要だったのは、…最終的に HostGator の担当者、3人目の担当者に、私の問題に関するくだくだしい説明を通して理解してもらえたのは、「max_input_vars = 3000」の部分でした。

    私のHostGatorの担当者が保留にし、問題を調査した結果、「max_input_vars = 3000」をphp.iniファイルに入れる必要があると判断しました。これは、HostGatorのみがアクセスできるファイルであり、私たちがHostGatorや他のホスティングプロバイダーのアカウントを通じて、よくアクセスポイントと呼ぶCPanelを使用してアクセスできる「ホーム」または「ルート」ディレクトリにあるphp.iniファイルではありません。

    このphp.iniファイルは、私やアカウント保有者である私たちが、ホスティングアカウントへのアクセス権を持っていても、インターネット経由でアクセスできるようなものでは全くありません。わかったか? よろしい、そして知っておくと良いことだ。

    さて、私がやったことは、この投稿のすぐ下のアレックスが言っていたことを実行し、これらのテキスト/コード行をphp.iniファイルに入れ、それを私のドメインで作業していたドメインの「wp-admin」フォルダ内のpublic_htmlファイル領域に置きました。しばらくの間、この「修正」が機能していると思っていましたが、今日、さらにページを追加していたところ、「なんてこった」という感じで、メインメニューのナビゲーション項目がラインから落ちてしまいました。まったく!

    問題に再び戻り、この投稿全体と、少し私の手に余る「Coretrac Ticket」のスレッドを再確認しましたが、それでも私は勤勉で決意を持っていました。そして、HostGatorの人々と再び話し合い#2を行い、その電話を終え、3人目の人でうまくいきました。

    最後に学んだことは、「max_input_vars = 3000」というのは、あなたのインストール/ドメイン/WordPressが持つことができるページ数に関係しており、「3000」はページ数を意味するということです。私のHostGator担当者は5000ページを設定しました。

    そのため、彼が電話中にその場で2つの新しいテストページを追加したところ、「やった!」と報告されました。やった!私もこれで好きなだけページを追加できるようになるはずです!あなたもWordPressの楽しさを体験できますように!

    Cheers,
    Gadget

    • HostGatorの共有ホスティングアカウントで、wp-adminフォルダ内のphp.iniファイルに以下の行を追加することで問題が解決しました。

      max_input_vars = 9000;

      ありがとう

  18. php.ini ファイルを作成しますが、ルート(public_html)ではなく、「wp-admin」フォルダ内に作成し、以下を追加してください:

    max_input_vars = 3000;

    また、以下も設定しています:
    upload_max_filesize = 70M;
    post_max_size = 128M;
    upload_tmp_dir = 70M;
    max_input_vars = 3000;
    memory_limit = 256M;

  19. この素晴らしいヒントをありがとうございます!UberMenuで同じ問題を抱えていました。今、.htaccessファイルにphp_value max_input_vars 5000を追加したところ、問題が解決しました。

  20. いくつかのことを試しましたが、うまくいきませんでした。ホストにこれらの PHP 設定変更を行ってもらいました。また、他の人が提案したように Memory Bump プラグインを有効にしてから削除しました。

    私のテーマ(Twenty Ten)はメニューを1つしかサポートしていません。別のメニューを作成し、そこで問題なく変更を加えることができます。ライブサイトがあるので、実験できる量には限りがあります。

    他に何かアイデアはありますか?この際、何でも試します。

  21. マットの提案は私も効果がありました。なぜなら、私は suhosin を実行していないからです。

    php.ini ファイルに max_input_vars = 5000 を追加しました

    • こんにちは、wp-adminにphp.iniファイルをmax_input_vars = 5000
      として配置しましたが、機能しませんでした。このphpファイルは別のディレクトリにも配置する必要がありますか?
      ありがとうございます

  22. 同じ問題を抱えており、Memory Bumpプラグインでも解決しませんでした。

    ホスティングプロバイダーに連絡したところ、php.ini ファイルはまだなく、自分で作成するか、WP に作成してもらう必要があると言われました……

    どうすればこれを実行できますか?

  23. WPのajax機能がリスト内のアイテム数を評価し、1つの大きなリクエストではなく複数の連続したリクエストに分割することで、簡単な修正になるようです。

    WordPressチームがこれを事前に考えていなかったのは奇妙ですが、プラットフォームが非常に堅牢であるため、彼らには手が回らないのでしょう。自分でやるかもしれませんが、もちろん将来のアップデートで上書きされないようにする必要があります。なんて面倒なんだ!

  24. Mat Lipeさんと同じ状況です。私のサーバーにはsuhosinがインストールされていないため、問題が発生していました。Matさんが投稿したディレクティブをphp.iniファイルに追加することで問題を解決できました。ありがとうございます。

  25. 同じ問題に直面しましたが、ホスティングサポートと何日もメールでやり取りした後、ついに解決しました!

    彼らは以下の変更を行いました:

    php.ini に max_input_vars = 5000 を追加しました

    これで、まるで魔法のように機能し、好きなだけページを追加できるようになりました。

  26. Hello,

    私のサーバーはsuhosinを実行していないため、php.iniファイルにこれを追加してサーバーを再起動することでこの問題を解決できました。

    max_input_vars = 5000

    同じ問題を抱えている他の誰かの助けになれば幸いです

  27. これ、ありがとうございます。

    かなり前にこれを経験し、メモリ割り当てに関連していると思っていました。

    WordPressdotorg の Memory Bump Plugin ( http://wordpress.org/extend/plugins/memory-bump/ ) を有効にした後、さらにメニューを追加できるようになりました。

    その後、プラグインを無効化しました。

    コードをいじることなく、迅速かつ簡単でした。

返信する

コメントを残していただきありがとうございます。すべてのコメントは、当社のコメントポリシーに従ってモデレーションされますので、ご了承ください。メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で有意義な会話をしましょう。