私はWP 3.5.1を実行しており、約100項目のメニューがあります。メニューに新しいアイテムを追加すると、古いアイテムは消えます。
私はSuhosinや似たようなものを走らせていません。原因は何ですか?
注:私は専用サーバーにいます。
同様の問題を抱えているユーザーには、以下のように動作します。
max_input_vars
のphp.ini
変数の値を増やしてください。この変数はPHP version 5.3.9
で導入され、デフォルト値は1000
です。
詳しくはPHPのドキュメントをご覧ください。
http://php.net/manual/en/info.configuration.php
max_input_vars 1000 PHP_INI_PERDIR Available since PHP 5.3.9.
許容される入力変数の数($ _GET、$ _POST、および$ _ COOKIEスーパーグローバルに別々に制限が適用されます)。このディレクティブの使用はハッシュ衝突を使用するサービス妨害攻撃の可能性を軽減します。
あなたはそれを1500
または2000
に増やすことを試みることができます。
以下のデータを使用して、Save Menu
ボタンを押したときに、一定数のメニュー項目を指定して、送信しているPOST変数の数を見積もることができます。
のようです:
"number of POST variables" = 11 * "number of menu items" + 9
これは次の行と同等です。
y=11x+9
それでは、以下の表を構築することができます。
100
メニュー項目を保存する必要がある場合、1109
POST変数を送信する必要があるので、max_input_vars
は少なくとも1109
でなければなりません。
同様に、メニューにアイテムを追加したとき(Ajax POST経由)
我々が得る
"number of POST variables" = 10 * "number of menu items" + 3
これは次の行です。
y=10x+3
対応するデータテーブルは次のとおりです。
10
メニュー項目を追加するとき、103
POST変数を送ります。
$_POST
項目だけでメニューを保存したときに、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
)
)
3
項目をそれらのメニューに追加すると、POST
データは次のようになります。
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] =>
)
)
)