Zaufane samouczki WordPress, kiedy ich najbardziej potrzebujesz.
Przewodnik dla początkujących po WordPressie
WPB Cup
25 milionów+
Witryny korzystające z naszych wtyczek
16+
Lata doświadczenia z WordPressem
3000+
Samouczki WordPress od ekspertów

Jak naprawić limit niestandardowych elementów menu w WordPress

Zaledwie kilka dni temu jeden z naszych użytkowników zgłosił nietypowy problem. Problem polegał na tym, że osiągnął limit niestandardowych elementów menu. Wszystko, co zapisał po osiągnięciu limitu elementów menu, nie zostało zapisane. Nigdy nie słyszeliśmy o tym problemie, więc postanowiliśmy spróbować na naszej lokalnej instalacji. Utworzyliśmy ponad 200 elementów menu i zapisaliśmy je. Działało bez zarzutu. Przenieśliśmy 100 elementów do menu rozwijanego i to również zostało zapisane bez problemu. W tym momencie wiedzieliśmy, że ma to coś wspólnego z serwerem. Po dalszych badaniach okazało się, że wiele innych osób miało ten sam problem. Zagłębiając się nieco głębiej, znaleźliśmy zgłoszenie w systemie trac (#14134), które podkreślało ten problem. Po przeczytaniu bardzo, bardzo długiego zgłoszenia w systemie trac, wydaje się, że problem nie został jeszcze naprawiony, ale istnieje obejście dla tych, którzy mają ten problem. W tym artykule pokażemy, jak naprawić limit niestandardowych elementów menu w WordPress.

Aby rozwiązać problem, musisz edytować plik PHP.ini. Jeśli korzystasz z serwera dedykowanego lub VPS z dostępem do roota, powinieneś już wiedzieć, o czym mówimy. Jeśli korzystasz z hostingu współdzielonego lub nie wiesz, gdzie znajduje się plik PHP.ini, poproś swojego dostawcę hostingu internetowego o wykonanie tej czynności.

Musisz poprosić ich o ustawienie następujących wartości w konfiguracji PHP.ini:

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

Inny użytkownik „ronnieg” opublikował obejście, które ma dla swojej dużej (ponad 450 stron i wciąż rosnącej) strony o nieruchomościach i menu. Możesz przeczytać jego odpowiedź, aby śledzić. (Uwaga: jeszcze tego nie wypróbowaliśmy)

Wyjaśnienie problemu

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 to projekt open-source (dobrowolny), a zespół rdzeniowy robi wszystko, co w ich mocy, aby go codziennie ulepszać. Zostanie to naprawione, ale harmonogram nie jest jeszcze zdefiniowany, ponieważ mówi się „Przyszłe wydania”.

Jeśli próbowałeś czegoś innego, co rozwiązało ten problem, daj nam znać w komentarzach. Pozwoli to innym rozwiązać ich problemy, dopóki zespół programistów nie znajdzie obejścia.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz w niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak finansowany jest WPBeginner, dlaczego to ważne i jak możesz nas wesprzeć. Oto nasz proces redakcyjny.

Ostateczny zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi – kolekcji produktów i zasobów związanych z WordPress, które powinien mieć każdy profesjonalista!

Interakcje czytelników

80 CommentsLeave a Reply

  1. Hej! Korzystam z hostingu współdzielonego. Dlatego nie mam dostępu roota do edycji pliku phpi.ni. Jak mogę rozwiązać problem?

  2. Cześć

    Wygląd -> Menu -> po kliknięciu -> przekierowanie do -> strony 404

    Dodałem kilka głównych menu i kategorii na mojej stronie. po jakimś czasie nie mogłem otworzyć menu, aby cokolwiek zmodyfikować lub usunąć. moja strona przekierowuje na stronę 404. Próbowałem wielu kodów, ale nic nie działa. Proszę o pomoc

  3. Napotkałem ten sam problem… ale jestem na localhost… więc nie mam nikogo, kogo mógłbym poprosić o pomoc! (Windows 10/XAMPP/WP4.8). Jestem nowy w WP, nawet nie wiem, gdzie znaleźć php.ini! Moje „szybkie rozwiązanie” polegało na usunięciu kilku mniej ważnych podmenu. Ale chcę je wszystkie przywrócić. Sprawdziłem wspomniane wyżej zwiększenie pamięci, ale jest stare. Może nie działać na WP4.8. Nie warto ryzykować!

  4. Cześć.

    Dziękuję za świetne informacje. W końcu rozwiązałem problem z hostingiem GoDaddy, tworząc plik ph5.ini w Webroot z następującymi informacjami:

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

    rozwiązany problem po tym, jak obsługa klienta zresetowała bazę danych, czego ja nie mogłem zrobić. Mam nadzieję, że to pomoże.

  5. Cześć, dziękuję za to

    Miałem i miałem ten problem. Miałem długie menu i pewnego dnia zmniejszyło się tylko do 50 linii. Wsparcie motywu skierowało mnie do tego tematu. Próbowałem wszystkich opcji, ale tylko jedna działa dla mnie, nawet bez kontaktu z pomocą techniczną hostingu.

    Dodałem „php_value max_input_vars 5000” (bez cudzysłowów) do mojego pliku .htaccess przed linią „#koniec wordpress” i to rozwiązało problem.

  6. Cześć Zespole,

    Używam Hostgator z Multidomain SSL.

    Sprawdziłem ustawienia i nie wiem gdzie i jak to zrobić.

    Dodałem plik php.ini z kodem max_input_vars=9000; i nadal nie mogę dodawać elementów menu do głównego menu.

    Czy ktoś mi pomoże. Będę bardzo wdzięczny.

    Z poważaniem,
    -Rams

  7. Mam teraz ten problem, skontaktowałem się z hostingodawcami, którzy mówią, że nie mogą/nie zwiększą do 5000 zmiennych, ponieważ jest to serwer współdzielony, czy jest jakieś inne rozwiązanie? czy możliwe jest posiadanie dwóch menu nawigacyjnych na tej samej stronie, czy to rozwiązałoby problem, czy po prostu by się powtarzał.

    Z góry dziękuję, każda pomoc będzie bardzo cenna

  8. Niesamowite. Mam ten sam problem od dłuższego czasu bez pojęcia. Pytałem wielu ludzi. Dopiero dzisiaj rozwiązałem swój problem. hostGator nie ma potrzeby dzwonić do przedstawiciela centrum obsługi. Możemy to zrobić sami. Naprawdę pomocne, brak słów, żeby podziękować.

  9. Jaki jest maksymalny limit, jaki możemy ustawić dla tego? Wydaje mi się, że wyczerpałem również limit 5000.

  10. Mahalo nui loa (bardzo dziękuję)!

    To działało dla strony klienta, która jest na Bluehost, współdzielony hosting:
    1. Cpanel > File Manager
    2. public_html > wp-admin
    3. Kliknij „New File” > nazwij ją php.ini (jeśli nie masz jeszcze tego pliku)
    4. Kliknij php.ini > kliknij „edit” > kliknij „edit” ponownie
    5. Wklej: max_input_vars=5000; > Zapisz > GOTOWE

    • To zadziałało w moim przypadku! Jesteś moim aniołem! Fantastyczny udostępnienie. Miałem ten problem przez 2 dni. Dziękuję bardzo!

      • Próbowałem,

        w pliku .htaccess:
        php_value max_input_vars 5000

        w pliku 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;

        w pliku .user.ini:
        max_input_vars=3000;

        a także testowałem umieszczając php.ini & .user.ini w wp-admin i poza wp-admin, nic mi nie działało,

        po dodaniu w .htaccess strona wp admin pokazuje pustą (białą).
        mój hosting to

        każda pomoc mile widziana. TIA

  11. Używam GoDaddy i poprawka php.ini w ogóle mi nie pomogła. Godaddy nawet nie rozpoznaje tej strony ani kodu jako prawidłowy.

    Uzyskując pomoc od ludzi z GoDaddy, zapewnili mi obejście problemu.

    Utworzyłem stronę w moim folderze html .user.ini (kropka-user-kropka-ini). Na tej stronie dodałem kod:

    max_input_vars = 3000

    Na razie działa.

    • utworzyłem stronę w moim folderze html .user.ini (kropka-user-kropka-ini) -> czy miałeś na myśli utworzenie PLIKU w swoim folderze PUBLIC_HTML?

      Proszę o potwierdzenie, ponieważ mam ten sam problem tutaj na serwerze godaddy.
      I nie mogę się z nimi skontaktować od tygodnia.

      Nie wiem, dlaczego tak trudno skontaktować się z godaddy.

      • Akut Ja też używam Godaddy.

        Znalazłem swój plik php.ini w menedżerze plików – folderze public_html, NIE w php.admin, ani nie musiałem tworzyć pliku php.ini.

        Godaddy wydaje się uważać, że jest to problem z WP, i zostałem zbyty w tej konkretnej sprawie.

        Skierowali mnie do zwiększenia limitu rozmiaru pliku. (Nie to samo rozwiązanie).

    • To rozwiązanie było jedynym, które działało na platformie hostingowej 1and1:

      Utworzyłem stronę w moim folderze html .user.ini (kropka-user-kropka-ini). Na tej stronie dodałem kod:

      max_input_vars = 3000

    • Lou, na pierwszy rzut oka (i pierwszy test) wydaje się, że zadziałało idealnie – dziękuję!

      Zaktualizuję, jeśli napotkam więcej problemów.

  12. Mam problem z dodaniem podmenu na stronie WordPress, konwertuje się ono na niestandardowy link.
    Proszę o pomoc w rozwiązaniu tego błędu

  13. po prostu usuń wordpress ; i przejdź na magento najlepsze rozwiązanie zadziałało u mnie po 2 miesiącach prób znalazłem najlepsze rozwiązanie

  14. Na Ubuntu VPS udało mi się to naprawić, odkomentowując i ustawiając wyższe wartości, jak poniżej.

    max_input_nesting_levels = 500
    max_input_vars = 5000

    Ale tak czy inaczej dzięki, bo to dało drogę do rozwiązania

    • Kocham cię, stary!
      Twoje rozwiązanie rozwiązało również inny mój problem! problemem było

      „Po zapisaniu menu w zakładce „Edytuj menu” opcja „Ustawienia menu -> Lokalizacja motywu” nie zachowywała zaznaczenia, a w zakładce „Zarządzaj lokalizacjami” lokalizacja menu była usuwana.”

    • Cześć człowieku,
      Używam wordpress multisite i mam problem z dodaniem większej liczby niestandardowych pól do mojej strony, próbowałem wszystkiego i nic nie pomogło, a ja widziałem twoją odpowiedź na temat zwiększenia max_input_nesting_levels = 500. Próbuję zwiększyć tę wartość na VPS z Ubuntu 16.04 w pliku PHP.Ini, ale bez powodzenia. plik info.php nadal pokazuje max_input_nesting_levels = 64. Będę wdzięczny, jeśli powiesz mi, jak zwiększyłeś tę wartość, czy to przez plik PHP.ini, czy przez plik htaccess?

      Pozdrawiam,

  15. Przyjaciele z HostGator – Ten sam problem & To go rozwiązało:

    1. Cpanel > Menedżer plików

    2. public_html > wp-admin

    3. Kliknij „Nowy plik” > nazwij go php.ini (jeśli nie masz jeszcze tego pliku)

    4. Kliknij php.ini > kliknij „edytuj” > kliknij ponownie „edytuj”

    5. Wklej: max_input_vars=5000; > Zapisz > GOTOWE

    • Cześć,

      Mój serwis jest hostowany na godaddy. Utworzyłem php.ini w wp-admin i wkleiłem jedną linię max_input_vars=5000;

      Nadal nie mogłem dodać więcej menu.

    • Dzięki za sugestie. Postępowałem zgodnie z Twoją sugestią i dodałem plik php.ini z max_input_vars=5000; i to rozwiązało mój problem. Jeszcze raz dziękuję.

    • 1 – Utwórz plik tekstowy
      2 – Wpisz tam: ” max_input_vars=5000; ” (bez cudzysłowów)
      3 – Zapisz jako php.ini
      4 – Połącz się przez FTP do public_html > wp-admin

      PERFEKT
      Dziękuję!!!

    • Ten sam problem na mojej stronie internetowej

      Moja strona jest hostowana na HostGator. Dodałem plik php.ini w /wp-admin, ale to nie działa dla mnie. Proszę pomóż mi.

  16. Ja również mam ten problem. Zostałem skierowany na tę stronę przez technika ze Studio Press. Mam współdzielone konto hostingowe w Host Gator. Zwiększyli moje max_input_vars do 7000, ponieważ 3000 ani 5000 nic nie dawało. Stworzyłem plik php.ini z Waszymi zaleceniami w moim wp-admin. Nadal bez powodzenia. Czy muszę usunąć plik php.ini z mojego folderu public, skoro stworzyłem jeden w wp-admin? Tak bardzo staram się to rozwiązać. Wielkie dzięki.

  17. Ponieważ jestem na hostingu współdzielonym, umieszczenie pliku php.ini w folderze głównym nie zadziałało u mnie. Ale umieszczenie go w folderze wp-admin zadziałało. Myślę, że dlatego, że plik nav-menus.php znajduje się w folderze wp-admin.

  18. Witam wszystkich, ... tak, ja też napotkałem ten problem/kwestię z menu ... i mogę powiedzieć YIKES!!! Gdzieś między 50 a 100 stroną, ostatni element, który umieściłem w menu, był usuwany lub wypadał z głównej nawigacji menu! Co?!!!

    Nowicjusze i inni geekowie wiedzą o tym (problemie) … i mówię tylko o moim przypadku, chociaż robię to w nadziei, że ktoś, kto doświadczy tego samego koszmaru, może skorzystać … więc zaczynamy.

    W przypadku „hostingu współdzielonego” korzystającego z HostGator … nie będzie „suhosin”, który jest podobno łatką/programem itp. dla błędów skryptowych w php, zaprojektowanym do ochrony „serwerów” według przedstawiciela HostGator, … teraz, niezależnie od tego szczegółu, kontynuujemy … co było ważne w moim przypadku, … że w końcu udało mi się sprawić, by mój kontakt z HostGator, osoba nr 3, zrozumiał, poprzez cały mój bełkot o problemie, była część dotycząca „max_input_vars = 3000”.

    Mój przedstawiciel HostGator wstrzymał mnie, zbadał problem i ustalił, że parametr ‘max_input_vars = 3000’ musiał zostać umieszczony w pliku php.ini, … do którego dostęp ma tylko HostGator, … a nie do pliku php.ini, który znajduje się w naszym katalogu głównym/domowym, do którego wszyscy mamy dostęp, za pośrednictwem naszych kont z HostGator lub innych dostawców hostingu, używając CPanel, jak często nazywamy ten punkt dostępu.

    Ten plik php.ini w żaden sposób nie jest dostępny przez internet dla mnie ani dla nas, jako posiadaczy kont z dostępem do hostingu, rozumiesz? Dobrze, i dobrze wiedzieć.

    Teraz zrobiłem tak, że wziąłem to, co Alex, tuż poniżej tego posta, powiedział, abym zrobił, i umieściłem te linie tekstu/kodu w pliku php.ini, który następnie umieściłem w moim obszarze plików public_html, wewnątrz mojego folderu „wp-admin”, dla domeny, nad którą pracowałem. Przez pewien czas myślałem, że to „rozwiązanie” działa, a potem dzisiaj dodawałem więcej stron i „o radości” główne elementy nawigacji menu wypadały z linii, cholera!!

    Wróciłem do problemu, ponownie przejrzałem cały ten post i wątek „Coretrac Ticket”, który jest dla mnie nieco za trudny, ale mimo to byłem sumienny i zdeterminowany. A potem znowu do ataku z ludźmi z HostGator na pogawędkę nr 2, zakończyłem tę rozmowę i musiałem wrócić, z osobą nr 3, która była urokiem.

    Na koniec, czego się nauczyłem, to to, że to, do czego odnosi się „max_input_vars = 3000”, to ile stron może mieć Twoja instalacja/domena/WordPress, „3000” oznacza strony. Mój przedstawiciel HostGator ustawił 5000 stron.

    Więc na miejscu dodałem dwie nowe strony testowe, gdy nadal rozmawiał przez telefon i zgłosiliśmy „radość”! Hura! Ja też teraz będę mógł dodawać strony do woli! Niech i Ty doświadczysz RADOŚCI WordPressa!

    Pozdrawiam,
    Gadget

    • Problem został rozwiązany za pomocą pliku php.ini w folderze wp-admin z następującą linią na koncie hostingowym HostGator shared.

      max_input_vars = 9000;

      Dzięki

  19. Utwórz plik php.ini, ale nie w katalogu głównym! ( public_html )
    w folderze “wp-admin”, a następnie dodaj:

    max_input_vars = 3000;

    Mam również :
    upload_max_filesize = 70M;
    post_max_size = 128M;
    upload_tmp_dir = 70M;
    max_input_vars = 3000;
    memory_limit = 256M;

  20. Cześć, dzięki za tę świetną wskazówkę! Miałem ten sam problem z UberMenu. Teraz dodałem php_value max_input_vars 5000 do mojego pliku .htaccess i to rozwiązało problem.

  21. Próbowałem kilku rzeczy bez powodzenia. Poprosiłem mojego hosta o wprowadzenie tych zmian w konfiguracji PHP. Aktywowałem również wtyczkę Memory Bump, a następnie ją usunąłem, zgodnie z sugestiami innych.

    Mój motyw (Twenty Ten) obsługuje tylko jedno menu. Jestem w stanie stworzyć inne menu i wprowadzać tam zmiany bez problemu. Mam aktywny serwis, więc jestem trochę ograniczony pod względem ilości eksperymentów, które mogę przeprowadzić.

    Jakieś inne pomysły? Spróbuję wszystkiego w tym momencie.

  22. Sugestia Matta zadziałała również u mnie, ponieważ nie używam suhosin.

    dodano:
    max_input_vars = 5000
    do mojego pliku php.ini

  23. Mam ten sam problem, a wtyczka Memory Bump Plugin go nie rozwiązała.

    Skontaktowałem się z moim dostawcą hostingu, a oni powiedzieli, że nie mam jeszcze pliku php.ini i muszę go utworzyć, lub WP musi go utworzyć dla mnie……

    Jak mam to zrobić?

  24. Wydaje się, że prostym rozwiązaniem byłoby, gdyby funkcjonalność WP ajax oceniała liczbę elementów na liście i dzieliła ją na wiele sekwencyjnych żądań zamiast jednego dużego żądania.

    Dziwne, że zespół WordPressa o tym nie pomyślał wcześniej, ale myślę, że platforma jest tak rozbudowana, że po prostu mają za dużo na głowie. Mogę to zrobić sam, ale oczywiście zrobię to w sposób, który nie zostanie nadpisany przez przyszłe aktualizacje. Co za kłopot!

  25. Jestem w tej samej sytuacji co Mat Lipe. Miałem problemy, ponieważ mój serwer nie ma zainstalowanego suhosin. Udało mi się rozwiązać problem, dodając dyrektywę, którą Mat opublikował, do mojego pliku php.ini. Dzięki.

  26. Właśnie napotkałem ten sam problem i po dniach wymiany e-maili z pomocą techniczną hostingu, w końcu udało się go rozwiązać!

    Dokonali następujących zmian:

    Dodali max_input_vars = 5000 w php.ini

    To wszystko i teraz działa jak marzenie, a ja dodaję strony do woli.

  27. Witam,

    Mój serwer nie używa suhosin, więc udało mi się rozwiązać ten problem, dodając to do mojego pliku php.ini i restartując serwer.

    max_input_vars = 5000

    Mam nadzieję, że to pomoże innym z tym samym problemem

  28. Dzięki za to.

    Doświadczyłem tego jakiś czas temu i myślałem, że ma to związek z alokacją pamięci.

    W końcu udało mi się dodać więcej menu po aktywacji wtyczki Memory Bump Plugin ( http://wordpress.org/extend/plugins/memory-bump/ ) z WordPressdotorg

    Po tym zdezaktywowałem wtyczkę.

    Było szybko i łatwo, bez grzebania w kodzie.

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszą polityką komentowania, a Twój adres e-mail NIE zostanie opublikowany. Prosimy NIE używać słów kluczowych w polu nazwy. Prowadźmy osobistą i znaczącą rozmowę.