web-dev-qa-db-fra.com

Articles de menu en train de disparaître

J'utilise WP 3.5.1 et j'ai un menu avec environ 100 éléments. Lorsque j'ajoute de nouveaux éléments au menu, les anciens disparaissent.

Je ne suis pas en cours d'exécution Suhosin ou similaire. Quelle peut être la cause?

Remarque: je suis sur un serveur dédié.

6
Herr

Ce qui suit a fonctionné pour certains utilisateurs avec un problème similaire:

Essayez d’augmenter la valeur de la variable max_input_vars dans php.ini. Cette variable a été introduite dans PHP version 5.3.9 et a la valeur par défaut 1000.

Vous pouvez en savoir plus à ce sujet dans la documentation PHP:

http://php.net/manual/en/info.configuration.php

max_input_vars  1000    PHP_INI_PERDIR  Available since PHP 5.3.9.

Nombre de variables d'entrée pouvant être acceptées (la limite est appliquée séparément à $ _GET, $ _POST et $ _COOKIE superglobal). L'utilisation de cette directive atténue la possibilité d'attaques par déni de service utilisant des collisions de hachage.

Vous pouvez essayer de l’augmenter à 1500 ou 2000.

Estimation:

En utilisant les données ci-dessous, nous pouvons essayer d’estimer combien de variables POST nous envoyons, en fonction d’un certain nombre d’éléments de menu, lorsque nous appuyons sur le bouton Save Menu.

save

Il semble que:

"number of POST variables" = 11 * "number of menu items" + 9

qui est équivalent à la ligne:

y=11x+9

Ensuite, nous pouvons construire le tableau suivant:

table

Dans votre cas, nous voyons que si vous devez enregistrer les éléments de menu 100, vous devez envoyer des variables 1109 _ POST, de sorte que votre max_input_vars doit être au moins 1109.

De même lorsque nous ajoutons des éléments au menu (via Ajax POST)

add

on a

"number of POST variables" = 10 * "number of menu items" + 3

quelle est la ligne:

y=10x+3

Le tableau de données correspondant est:

table

Lorsque nous ajoutons des éléments de menu 10, nous envoyons des variables 103 POST.

Les données:

Juste pour vous montrer la quantité de données $_POST lorsque je sauvegarde mon menu avec uniquement des éléments 5:

Array
(
    [menu-name] => simple_menu
    [save_menu] => Save Menu
    [closedpostboxesnonce] => xxxxxxxxxx
    [meta-box-order-nonce] => xxxxxxxxxx
    [update-nav-menu-nonce] => xxxxxxxxxx
    [_wp_http_referer] => /dev/wp-admin/nav-menus.php
    [action] => update
    [menu] => 58
    [menu-item-title] => Array
        (
            [1135] => home
            [1131] => page1
            [1130] => page2
            [1132] => page3
            [1133] => page4
        )

    [menu-item-attr-title] => Array
        (
            [1135] => 
            [1131] => 
            [1130] => 
            [1132] => 
            [1133] => 
        )

    [menu-item-classes] => Array
        (
            [1135] => 
            [1131] => 
            [1130] => 
            [1132] => 
            [1133] => 
        )

    [menu-item-xfn] => Array
        (
            [1135] => 
            [1131] => 
            [1130] => 
            [1132] => 
            [1133] => 
        )

    [menu-item-description] => Array
        (
            [1135] => 
            [1131] => 
            [1130] => 
            [1132] => 
            [1133] => 
        )

    [menu-item-db-id] => Array
        (
            [1135] => 1135
            [1131] => 1131
            [1130] => 1130
            [1132] => 1132
            [1133] => 1133
        )

    [menu-item-object-id] => Array
        (
            [1135] => 477
            [1131] => 1020
            [1130] => 1028
            [1132] => 791
            [1133] => 603
        )

    [menu-item-object] => Array
        (
            [1135] => page
            [1131] => page
            [1130] => page
            [1132] => page
            [1133] => page
        )

    [menu-item-parent-id] => Array
        (
            [1135] => 0
            [1131] => 0
            [1130] => 1131
            [1132] => 1131
            [1133] => 0
        )

    [menu-item-position] => Array
        (
            [1135] => 1
            [1131] => 2
            [1130] => 3
            [1132] => 4
            [1133] => 5
        )

    [menu-item-type] => Array
        (
            [1135] => post_type
            [1131] => post_type
            [1130] => post_type
            [1132] => post_type
            [1133] => post_type
        )

    [menu-locations] => Array
        (
            [primary] => 0
        )

)

Lorsque j'ajoute des éléments 3 à leur menu, les données POST sont:

Array
(
    [action] => add-menu-item
    [menu] => 58
    [menu-settings-column-nonce] => xxxxxxxxxx
    [menu-item] => Array
        (
            [-56] => Array
                (
                    [menu-item-object-id] => 1728
                    [menu-item-db-id] => 0
                    [menu-item-object] => page
                    [menu-item-parent-id] => 0
                    [menu-item-type] => post_type
                    [menu-item-title] => Page 1
                    [menu-item-url] => http://example.com/page1/
                    [menu-item-target] => 
                    [menu-item-classes] => 
                    [menu-item-xfn] => 
                )

            [-57] => Array
                (
                    [menu-item-object-id] => 1724
                    [menu-item-db-id] => 0
                    [menu-item-object] => page
                    [menu-item-parent-id] => 0
                    [menu-item-type] => post_type
                    [menu-item-title] => Page 3
                    [menu-item-url] => http://example.com/page2/
                    [menu-item-target] => 
                    [menu-item-classes] => 
                    [menu-item-xfn] => 
                )

            [-59] => Array
                (
                    [menu-item-object-id] => 1658
                    [menu-item-db-id] => 0
                    [menu-item-object] => page
                    [menu-item-parent-id] => 0
                    [menu-item-type] => post_type
                    [menu-item-title] => Page 3
                    [menu-item-url] => http://example.com/page3/
                    [menu-item-target] => 
                    [menu-item-classes] => 
                    [menu-item-xfn] => 
                )

        )

)
16
birgire