Tutorial WordPress affidabili, quando ne hai più bisogno.
Guida per principianti a WordPress
WPB Cup
30 milioni+
Siti web che utilizzano i nostri plugin
20+
Anni di esperienza con WordPress
3000+
Tutorial WordPress di esperti

Come risolvere il limite di elementi del menu personalizzato in WordPress

Se hai aggiunto diversi elementi al tuo menu di WordPress e alcuni non si salvano, o peggio, scompaiono del tutto, probabilmente hai raggiunto il limite max_input_vars del tuo server. Questa impostazione limita quanti campi di input accetta PHP in una singola richiesta, e gli elementi del menu possono rapidamente superare quel limite.

WordPress ha corretto il bug sottostante nella versione 4.5.3. Se stai ancora riscontrando questo problema, è solitamente causato da un tema, un plugin o un page builder che ti fa superare il limite del tuo server.

In questo articolo, ti mostreremo come risolvere il limite di elementi del menu personalizzato in WordPress.

Come risolvere il limite di elementi del menu personalizzato in WordPress

Cosa causa il limite di elementi del menu

Il limite di elementi di menu personalizzati in WordPress è solitamente causato dall'impostazione max_input_vars PHP del tuo server. Questa impostazione controlla quanti campi del modulo PHP può accettare quando salvi un menu di WordPress. La maggior parte dei server la imposta su 1.000 per impostazione predefinita.

Ogni elemento del menu utilizza più campi del modulo, inclusi l'etichetta, l'URL, il target, le classi CSS e altro ancora. Man mano che il tuo menu cresce, il numero totale di campi può eventualmente superare questo limite. Quando ciò accade, PHP potrebbe smettere di elaborare alcuni dei campi quando salvi il menu, causando la scomparsa di alcuni elementi.

Se stai ancora riscontrando questo errore oggi, il tuo tema, page builder o un plugin potrebbero aggiungere campi aggiuntivi al modulo del menu o modificare il modo in cui il menu viene salvato. Potresti vedere un messaggio come "PHP max input vars deve essere almeno 5000."

Se alcuni elementi del menu sono scomparsi, non salvare di nuovo il menu per ora. Farlo potrebbe sovrascrivere il menu con gli elementi mancanti. Correggi prima il limite delle variabili di input, quindi torna al menu e ripristina eventuali elementi mancanti.

Detto questo, ti guideremo su come correggere il limite di elementi di menu personalizzati in WordPress. Ecco tutto ciò che tratteremo in questo articolo:

Passaggio 1: Aggiorna WordPress e controlla il tuo limite attuale

Innanzitutto, assicurati che WordPress stia eseguendo l'ultima versione. Questo da solo risolve la versione classica di questo bug.

Vai su Dashboard » Aggiornamenti e installa tutti gli aggiornamenti principali in sospeso.

Schermata degli aggiornamenti della bacheca di amministrazione di WordPress

Successivamente, controlla a quanto è attualmente impostato il max_input_vars del tuo server.

Vai su Strumenti » Stato del sito » Info, quindi apri la sezione 'Server'. Vedrai max_input_vars elencato con il suo valore corrente.

Controllo di max_input_vars nelle informazioni del server di Stato del sito

Se è inferiore a 1.000, o se il tuo tema o plugin richiede specificamente un numero più alto, dovrai aumentarlo utilizzando uno dei metodi seguenti.

Metodo 1: Aumenta il limite nel tuo pannello di hosting

Molti host WordPress ti consentono di modificare le impostazioni PHP senza toccare alcun file. Sugli host che utilizzano cPanel, questo viene fatto tramite l'Editor MultiPHP INI.

Innanzitutto, accedi a cPanel e vai su Software » Editor MultiPHP INI.

Accesso all'Editor MultiPHP INI all'interno di cPanel

Successivamente, seleziona il tuo dominio dal menu a discesa, quindi trova 'max_input_vars' e impostalo su '5000'. Fai clic su 'Applica'.

Configurazione di max_input_vars all'interno di cPanel

Se il tuo host non utilizza cPanel, cerca una schermata 'Impostazioni PHP' o 'Configurazione PHP' nel tuo pannello di controllo di hosting. La maggior parte degli host WordPress gestiti offre qualcosa di simile.

Metodo 2: Modifica il tuo file .user.ini o php.ini

💡 Importante: La modifica di .user.ini o php.ini può influire sull'intero sito web. È una buona idea creare un backup completo di WordPress prima di apportare modifiche.

Se il tuo provider di hosting non offre un pannello di impostazioni PHP, puoi aumentare il limite di max_input_vars modificando un file di configurazione PHP.

La maggior parte degli host condivisi utilizza un file .user.ini, che di solito puoi trovare nella cartella principale di WordPress. Alcune configurazioni del server utilizzano invece php.ini.

Apri il file appropriato con il file manager del tuo hosting o un client FTP e aggiungi:

max_input_vars = 5000

Salva il file e caricalo nuovamente nella stessa posizione, se necessario. Tieni presente che le modifiche a .user.ini richiedono in genere alcuni minuti per avere effetto.

Modifica di php.ini per max_input_vars

Non sei sicuro di quale file modificare o dove trovarlo? Consulta la nostra guida su dove si trova php.ini in WordPress per istruzioni specifiche per ogni provider.

Metodo 3: Modifica il tuo file .htaccess

💡 Importante: Un errore di sintassi in .htaccess può mettere offline l'intero sito con un errore 500 Internal Server Error. Esegui il backup del tuo sito prima di modificare questo file.

Se il tuo sito è in esecuzione su un server Apache, puoi anche aumentare il limite di max_input_vars tramite il tuo file .htaccess. Questo file di configurazione del server si trova solitamente nella directory principale di WordPress.

Apri il file .htaccess con il file manager del tuo hosting o un client FTP e aggiungi:

php_value max_input_vars 5000
Modifica di .htaccess per max_input_vars

Salva il file e controlla di nuovo il menu di WordPress.

Tieni presente che questo metodo è solo per Apache. Se il tuo sito va offline dopo il salvataggio, rimuovi la riga che hai appena aggiunto e prova invece uno degli altri metodi.

Non riesci a vedere il tuo file .htaccess? Consulta la nostra guida completa su come trovare il tuo file .htaccess.

Metodo 4: Chiedi al tuo provider di hosting

Se nessuno dei metodi precedenti ti è accessibile, la maggior parte dei provider effettuerà questa modifica per te. Puoi copiare e incollare questo messaggio al loro team di supporto:

Ciao, potresti per favore aumentare l'impostazione PHP max_input_vars a 5000 per il mio sito? Sto riscontrando un problema nel salvataggio del menu di WordPress causato dal limite attuale. Grazie!

Se stai cercando un provider che ti dia un controllo più diretto sulle impostazioni PHP, consulta la nostra guida ai migliori hosting WordPress.

Verifica la correzione

Una volta aumentato il limite di max_input_vars, è una buona idea verificare che il nuovo valore sia attivo prima di ricostruire il tuo menu.

Torna semplicemente su Strumenti » Stato del sito » Info » Server e conferma che max_input_vars mostri ora 5000 (o il tuo nuovo valore).

max_input_vars nelle informazioni del server di Stato del sito aumentato

Quindi, puoi andare su Aspetto » Menu, ricostruire eventuali elementi mancanti e salvare. Il tuo menu completo dovrebbe ora salvarsi senza perdere nulla.

Ancora non si salva? Altre cose da controllare

  • Disattiva i tuoi plugin uno per uno, salvando nuovamente il menu dopo ciascuno, per trovare quello che è in conflitto.
  • Se stai utilizzando un tema a blocchi, tieni presente che il blocco Navigazione dell'Editor del sito memorizza i dati del menu in modo diverso e non è affatto influenzato da questo limite.
  • Gestisci un menu molto grande (oltre 100 elementi)? Le nostre guide su come aggiungere un menu di navigazione in WordPress e il nostro tutorial sui mega menu coprono approcci progettati per menu più grandi.

Speriamo che questa guida ti abbia aiutato a risolvere il limite di elementi del menu personalizzato in WordPress. Successivamente, potresti voler consultare le nostre guide su come risolvere gli errori di WordPress o come aumentare le prestazioni di WordPress.

Divulgazione: Il nostro contenuto è supportato dai lettori. Ciò significa che se fai clic su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come è finanziato WPBeginner, perché è importante e come puoi supportarci. Ecco il nostro processo editoriale.

Il Toolkit WordPress Definitivo

Ottieni l'accesso GRATUITO al nostro toolkit - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Interazioni del lettore

80 CommentiLascia una risposta

  1. Ciao! Sto usando l'hosting condiviso. Ecco perché non ho accesso root per modificare il file phpi.ni. Come posso risolvere il problema?

  2. Ciao

    Aspetto -> Menu -> cliccando -> reindirizzamento a -> pagina 404

    Ho aggiunto alcuni menu principali e categorie al mio sito web. Dopo un po' non riuscivo più ad aprire il menu per modificare o eliminare nulla. il mio sito web viene reindirizzato alla pagina 404. Ho provato molti codici ma niente funziona. Per favore, aiutami

  3. Ho riscontrato lo stesso problema... ma sono in localhost... quindi non ho nessuno a cui chiedere aiuto! (Windows 10/XAMPP/WP4.8). Nuovo di WP, non so nemmeno dove trovare php.ini! La mia "soluzione rapida" è stata rimuovere alcune voci di sottomenu meno importanti. Ma voglio rimetterle tutte. Ho controllato il memory-bump menzionato sopra, ma è vecchio. Potrebbe non funzionare su WP4.8. Non vale il rischio!

  4. Ciao.

    Grazie per le ottime informazioni. Ho finalmente risolto il problema sull'hosting GoDaddy creando un file ph5.ini nella Webroot con le seguenti informazioni:

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

    risolto il problema dopo che il servizio clienti ha resettato il database, cosa che io non potevo fare. Spero questo aiuti.

  5. Ciao, grazie per questo

    Ho avuto questo problema. Avevo un menu lungo e un giorno si è ridotto a sole 50 righe. Il supporto del tema ha inviato a questo argomento. Ho provato tutte le opzioni, ma solo una ha funzionato per me anche senza contattare il supporto dell'hosting.

    Ho aggiunto "php_value max_input_vars 5000" (senza virgolette) al mio file .htaccess prima della riga "#end of wordpress" e questo ha risolto il problema.

  6. Ciao Team,

    Sto usando Hostgator con Multidomain SSL.

    Ho controllato le impostazioni e non so dove e come fare.

    Ho aggiunto il file php.ini con il codice max_input_vars=9000; e ancora non riesco ad aggiungere voci di menu nel menu principale.

    Qualcuno mi aiuti. Molto apprezzato.

    Cordiali saluti,
    -Rams

  7. Sto avendo questo problema in questo momento, ho contattato gli host che dicono che non possono / non aumenteranno a 5000 variabili perché è un server condiviso, c'è qualche altra soluzione? è possibile avere due menu di navigazione sulla stessa pagina, questo risolverebbe il problema, o continuerebbe semplicemente.

    Grazie in anticipo, qualsiasi aiuto sarebbe molto apprezzato

  8. Fantastico. Ho lo stesso problema da molto tempo senza capirne il motivo. Ho chiesto a tante persone. Solo oggi ho risolto il mio problema. hostGator non c'è bisogno di chiamare il centro assistenza. Possiamo farlo da soli. Davvero utile, non ci sono parole per ringraziare

  9. Mahalo nui loa (grazie mille)!

    Questo ha funzionato per il sito di un cliente che si trova su Bluehost, hosting condiviso:
    1. Cpanel > File Manager
    2. public_html > wp-admin
    3. Clicca su “New File” > chiamalo php.ini (se non hai già questo file)
    4. Clicca su php.ini > clicca su “edit” > clicca di nuovo su “edit”
    5. Incolla: max_input_vars=5000; > Salva > FATTO

    • Funziona nel mio caso! Sei il mio angelo! Condivisione fantastica. Ho avuto questo problema per 2 giorni. Grazie mille!

      • Ho provato,

        nel file .htaccess:
        php_value max_input_vars 5000

        nel file 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;

        nel file .user.ini:
        max_input_vars=3000;

        e ho anche provato inserendo php.ini e .user.ini in wp-admin e fuori da wp-admin, niente funziona per me,

        aggiungendo nel file .htaccess la pagina di amministrazione di WordPress appare vuota (bianca).
        il mio hosting è

        qualsiasi aiuto è apprezzato. TIA

  10. Uso GoDaddy e la correzione di php.ini non ha funzionato affatto per me. GoDaddy non riconosce nemmeno quella pagina o quel codice come valido.

    Ottenendo aiuto dalle persone di GoDaddy mi hanno fornito una soluzione alternativa.

    Ho creato una pagina nella mia cartella html .user.ini (punto-user-punto-ini). Su quella pagina ho aggiunto il codice:

    max_input_vars = 3000

    Sembra funzionare finora.

    • creato una pagina nella mia cartella html .user.ini (punto-user-punto-ini) -> intendevi creare un FILE nella tua cartella PUBLIC_HTML?

      Si prega di confermare poiché ho lo stesso problema qui anche sul server di GoDaddy.
      E non riesco a contattarli da una settimana.

      Non so perché sia così difficile contattare GoDaddy.

      • Akut, uso anche GoDaddy.

        Ho trovato il mio file php.ini nella cartella file manager – public_html, NON in php.admin, né ho dovuto creare il file php.ini.

        GoDaddy sembra pensare che sia un problema di WP, e mi hanno fatto girare a vuoto su quel particolare problema.

        Mi hanno indirizzato ad aumentare il mio limite di dimensione dei file. (Non la stessa soluzione).

    • Questa soluzione è stata l'unica che ha funzionato sulla piattaforma di hosting 1and1:

      Ho creato una pagina nella mia cartella html .user.ini (punto-user-punto-ini). Su quella pagina ho aggiunto il codice:

      max_input_vars = 3000

    • Lou, a prima vista (e al primo test) sembra aver funzionato perfettamente – grazie!

      Aggiornerò se riscontrerò altri problemi.

  11. Ho riscontrato un problema nell'aggiungere un sottomenu al sito WordPress, si converte in un link personalizzato.
    Per favore, aiutami a risolvere questo errore.

  12. rimuovi semplicemente wordpress; e passa a Magento, la migliore soluzione, ha funzionato per me dopo aver provato per 2 mesi ho trovato la migliore soluzione

  13. Su VPS Ubuntu sono riuscito a risolvere commentando e impostando valori più alti come di seguito.

    max_input_nesting_levels = 500
    max_input_vars = 5000

    Comunque grazie, ha fornito una via verso la soluzione

    • ti amo amico!
      la tua soluzione ha risolto anche un altro mio problema! il problema era

      "Dopo aver salvato il menu nella scheda "Modifica menu", la "Impostazioni menu -> Posizione tema" non manteneva la spunta e nella scheda "Gestisci posizioni" la posizione del menu veniva rimossa."

    • Ciao amico,
      Sto usando wordpress multisite e ho alcuni problemi nell'aggiungere più campi personalizzati al mio sito, ho provato di tutto ma niente ha aiutato e ho visto la tua risposta sull'aumento di max_input_nesting_levels = 500. Sto cercando di aumentare questo valore su un VPS con Ubuntu 16.04 nel file PHP.Ini ma senza successo. info.php mostra ancora max_input_nesting_levels = 64. Apprezzo se puoi dirmi come hai aumentato questo valore, se è stato tramite il file PHP.ini o tramite il file htaccess?

      Cordiali saluti,

  14. Amici HostGator – Stesso problema e questo lo ha risolto:

    1. Cpanel > File Manager

    2. public_html > wp-admin

    3. Clicca su "Nuovo file" > chiamalo php.ini (se non hai già questo file)

    4. Clicca su php.ini > clicca su "modifica" > clicca di nuovo su "modifica"

    5. Incolla: max_input_vars=5000; > Salva > FATTO

    • Ciao,

      Il mio sito è ospitato su GoDaddy. Ho creato php.ini in wp-admin e ho incollato la singola riga max_input_vars=5000;

      Ancora non riuscivo ad aggiungere altri menu.

    • Grazie per i suggerimenti. Ho seguito il tuo suggerimento e ho aggiunto il file php.ini con max_input_vars=5000; e ha risolto il mio problema. Grazie ancora

    • 1 – Crea un file di testo
      2 – Inserisci questo: " max_input_vars=5000; " (senza le virgolette)
      3 – Salva come php.ini
      4 – Accedi via FTP a public_html > wp-admin

      PERFETTO
      Grazie!!!

    • Stesso problema sul mio sito web

      Il mio sito è ospitato su HostGator. Ho aggiunto il file php.ini in /wp-admin ma non funziona per me. Aiutatemi per favore.

  15. Sto riscontrando questo problema anch'io. Sono stato indirizzato a questo sito da un tecnico di Studio Press. Ho un account di hosting condiviso con Host Gator. Hanno aumentato il mio max_input_vars a 7000, perché non stavo ottenendo risultati con 3000 o 5000. Ho creato un php.ini con le tue raccomandazioni nella mia wp-admin. Ancora nessun risultato. Devo eliminare il php.ini nella mia cartella public, dato che ne ho creato uno in wp-admin? Ci sto provando così tanto a risolvere questo problema. Molte grazie.

  16. Poiché sono su hosting condiviso, mettere il php.ini nella cartella principale non ha funzionato per me. Ma metterlo nella cartella wp-admin ha funzionato. Penso che questo sia perché il file nav-menus.php si trova nella cartella wp-admin.

  17. Ciao Gente, … sì, anch'io mi sono imbattuto in questo problema/questione del menu … e posso dire YIKES!!! A un certo punto tra le 50 e le 100 pagine, l'ultima voce che ho messo nel menu veniva rimossa, e/o cadeva dalla navigazione del menu principale! Cosa?!!!

    I neofiti, e altri geek allo stesso modo, sanno questo riguardo a quel (problema) … e parlo solo per il mio caso, sebbene lo faccia nella speranza che qualcuno che sperimenta lo stesso incubo possa trarne beneficio … quindi eccoci qui.

    Con l'hosting condiviso di HostGator non ci sarà 'suhosin', che a quanto pare è una patch/programma eccetera per errori di scripting con php progettato per proteggere i 'server' secondo un rappresentante di HostGator, … ora, nonostante questo dettaglio, continuiamo … ciò che era importante nel mio caso, … che ho finalmente fatto capire alla mia persona di HostGator, persona n. 3, attraverso tutto il mio vaneggiare sul problema, è stata la parte riguardante 'max_input_vars = 3000'.

    Il mio rappresentante HostGator mi ha messo in attesa, ha indagato sul problema e ha stabilito che il 'max_input_vars = 3000' doveva essere inserito nel file php.ini, … a cui solo HostGator ha accesso, … non il file php.ini che si trova nella mia/nostra directory 'home' o 'root', a cui io/noi tutti abbiamo accesso, tramite i nostri account con HostGator o altri provider di hosting, utilizzando il CPanel, come spesso chiamiamo questo punto di accesso.

    Questo file php.ini non è in alcun modo accessibile via Internet da me, o da noi, in qualità di titolari di account con accesso all'account di hosting, capito? Bene, ed è bene saperlo.

    Ora, quello che ho fatto è stato prendere quello che Alex, subito sotto questo post, ha detto di fare, e ho inserito queste righe di testo/codice in un file php.ini che ho poi messo nella mia area file public_html, all'interno della mia cartella 'wp-admin', per il dominio su cui stavo lavorando. Per un po', ho pensato che questa 'soluzione' stesse funzionando, poi oggi, stavo aggiungendo altre pagine e 'oh gioia' le voci di navigazione del menu principale stavano cadendo dalla riga, accidenti!!

    Sono tornato al problema, ho rivisto l'intero post e il thread 'Coretrac Ticket', che è un po' al di sopra delle mie capacità, ma comunque, sono stato diligente e determinato. E poi di nuovo all'attacco con la gente di HostGator per il pow-wow n. 2, ho completato quella chiamata e ho dovuto tornare, con la persona n. 3 che è stata quella giusta.

    Infine, quello che ho imparato è che ciò a cui si riferisce 'max_input_vars = 3000' è quante pagine la tua installazione/dominio/WordPress può avere, il '3000' significa pagine. Il mio rappresentante HostGator ha inserito 5000 pagine.

    Quindi, ho aggiunto due nuove pagine di prova sul posto con lui ancora al telefono e abbiamo riportato 'gioia'! Evvai! Anch'io dovrei ora essere in grado di aggiungere pagine a mio piacimento! Possa anche tu sperimentare la GIOIA di WordPress!

    Salute,
    Gadget

    • Il problema è stato risolto con il file php.ini nella cartella wp-admin con la seguente riga su un account di hosting condiviso HostGator.

      max_input_vars = 9000;

      Grazie

  18. Crea un file php.ini ma non nella root! ( public_html )
    nella cartella “wp-admin” poi aggiungi:

    max_input_vars = 3000;

    Ho anche :
    upload_max_filesize = 70M;
    post_max_size = 128M;
    upload_tmp_dir = 70M;
    max_input_vars = 3000;
    memory_limit = 256M;

  19. Ciao, grazie per questo ottimo consiglio! Ho avuto lo stesso problema con UberMenu. Ora ho aggiunto php_value max_input_vars 5000 al mio file .htaccess e ha risolto il problema.

  20. Ho provato alcune cose senza successo. Ho chiesto al mio host di apportare queste modifiche alla configurazione PHP. Ho anche attivato il plugin Memory Bump e poi l'ho rimosso come suggerito da altri.

    Il mio tema (Twenty Ten) supporta solo un menu. Riesco a creare un altro menu e apportare modifiche lì senza problemi. Ho un sito live, quindi sono un po' limitato in termini di quantità di esperimenti che posso fare.

    Altre idee? Proverò qualsiasi cosa a questo punto.

  21. Il suggerimento di Matt ha funzionato anche per me, dato che non eseguo suhosin.

    aggiunto:
    max_input_vars = 5000
    al mio file php.ini

  22. Ho lo stesso problema e il plugin Memory Bump non l'ha risolto.

    Ho contattato il mio provider di hosting e mi hanno detto che non ho ancora un file php.ini e che devo crearlo io, o che WP deve crearlo per me......

    Come si fa?

  23. Sembra che una semplice soluzione sarebbe che la funzionalità ajax di WP valutasse il numero di elementi nella lista e la dividesse in più richieste sequenziali invece di una singola grande richiesta.

    Mi sembra strano che il team di WordPress non ci abbia pensato in anticipo, ma immagino che la piattaforma sia così robusta che hanno semplicemente troppo da fare. Potrei finire per farlo da solo, ma ovviamente dovrò farlo in modo che non venga sovrascritto da futuri aggiornamenti. Che seccatura!

  24. Sono nella stessa situazione di Mat Lipe. Avevo problemi perché il mio server non ha suhosin installato. Sono riuscito a risolvere il problema aggiungendo la direttiva che Mat ha postato al mio file php.ini. Grazie.

  25. Ho appena riscontrato lo stesso problema e dopo giorni di email avanti e indietro con il supporto di we hosting, è stato finalmente risolto!

    Hanno apportato le seguenti modifiche:

    Hanno aggiunto max_input_vars = 5000 in php.ini

    Tutto qui, e ora funziona a meraviglia e sto aggiungendo pagine a più non posso.

  26. Salve,

    Il mio server non sta eseguendo suhosin, quindi sono riuscito a risolvere questo problema aggiungendo questo al mio file php.ini e riavviando il mio server.

    max_input_vars = 5000

    Spero che questo aiuti chiunque altro abbia lo stesso problema

  27. Grazie per questo.

    L'ho riscontrato un po' di tempo fa e pensavo avesse a che fare con l'allocazione della memoria.

    Alla fine sono stato in grado di aggiungere altri menu dopo aver attivato il plugin Memory Bump ( http://wordpress.org/extend/plugins/memory-bump/ ) da WordPressdotorg

    Ho disattivato il plugin in seguito.

    È stato rapido e facile senza dover modificare alcun codice.

Lascia un commento

Grazie per aver scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra politica sui commenti e il tuo indirizzo email NON verrà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.