Есть ли причины, по которым вы не можете использовать строки для позиций меню администратора?

При взаимодействии с административным меню, например, через add_menu_page , есть параметр $position. В inline docs указывается, что это должно быть целое число. Codex согласен, но добавляет примечание о том, что вы можете использовать float, если вы сделаете его строкой (например, '63.3'). В wp-admin /includes /menu.php массив сортируется путем сравнения ключей с strnatcasecmp .

С учетом этого можно было бы установить положение меню '63-foo' или '63-bar', чтобы избежать конфликтов позиций. Это было бы особенно полезно для плагинов, где в настоящее время они могут устанавливать положение, которое может вызвать конфликты в некоторых темах или с другими плагинами.

Использование строк кажется очень хорошим. Я расчесал источник и не нашел никаких проблем, но, возможно, я что-то пропустил. Есть ли причины, по которым строка не может или не должна использоваться для позиции меню?

7 голосов | спросил Matthew Boynes 11 WedEurope/Moscow2013-12-11T00:19:05+04:00Europe/Moscow12bEurope/MoscowWed, 11 Dec 2013 00:19:05 +0400 2013, 00:19:05

2 ответа


1

Помимо сортировки с помощью strnatcasecmp(), единственное место, где я вижу, где можно использовать ключ, - это кто-то применение пользовательского заказа меню . Однако, поскольку меню уже сортируется на основе порядка клавиш, маловероятно, что ключи будут играть какую-либо роль в пользовательской сортировке. Я не вижу других причин, по которым это может вызвать проблемы, поэтому, вероятно, это безопасно. Я бы открыть билет , чтобы изменить встроенные документы.

ответил J.D. 4 Jpm1000000pmSat, 04 Jan 2014 18:08:37 +040014 2014, 18:08:37
1

Это часть скрипта, который я использую для своей темы. Он ищет пустую позицию, близкую к вашей желаемой позиции. Кажется, это достаточно простое решение для меня?

//work out "safe" menu position
    global $menu;
    $safe_menu_position = 30;
    //while there IS a value
    while( !empty( $menu[$safe_menu_position] ) )
    {
        --$safe_menu_position;
    }
ответил Dan 5 Jam1000000amSun, 05 Jan 2014 11:35:03 +040014 2014, 11:35:03

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132