最も必要とされている時に、信頼できるWordPressチュートリアルを。
WordPress入門ガイド
WPBカップ
2500万人以上
当社のプラグインを使用しているウェブサイト
16+
WordPress経験年数
3000+
専門家によるWordPressチュートリアル

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ページ以上あり、増え続けている)不動産サイトとメニューのために彼が持っている回避策を投稿しました。彼の応答を読むことで、それに従うことができます。(注意:私たちはこれを試していません)

問題の説明

この問題は完全にWordPressベースではありません。なぜなら、異なる人々が異なる制限(いくつかは16、他は50と言い、ご存知の通り、私たちは制限を見ることなく200まで行きました)を見ているからです。理論上、WordPressはあなたが持つことができるメニューの数を制限していません。あなたのウェブホスティングサーバーが制限しています。POSTの最大変数に対するSuhosinの制限があり、それが大量のエントリの保存を制限しています。Nacinはtracチケットで、これはバグではなく機能強化であると返信しました。コアチームはサーバーの制限を回避する方法を見つけ、メニュー項目を保存するためのより良い方法を見つけ出す必要があります。そのため、サーバーの設定に関係なく、カスタムメニューの制限が表示されないようになります。言うは易く行うは難し :)

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

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

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

究極のWordPressツールキット

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

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

80件のコメント返信する

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

  2. こんにちは

    外観 -> メニュー -> クリック -> リダイレクト先 -> 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ファイルに追加したところ、問題が解決しました。

  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. 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ファイル経由なのか教えていただけると幸いです。

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

  13. 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で接続します

      完璧です
      ありがとうございました!!!

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

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

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

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

  16. 皆さん、…はい、私もこのメニューの問題/不具合に遭遇しました…そして、それはひどいものでした!!! 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の楽しさを体験できますように!

    よろしくお願いいたします。
    ガジェット

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

      max_input_vars = 9000;

      ありがとう

  17. 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;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  25. こんにちは、

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

    max_input_vars = 5000

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

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

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

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

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

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

返信する

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