Есть ли причины, по которым вы не можете использовать строки для позиций меню администратора?
При взаимодействии с административным меню, например, через add_menu_page
, есть параметр $position
. В inline docs указывается, что это должно быть целое число. Codex согласен, но добавляет примечание о том, что вы можете использовать float, если вы сделаете его строкой (например, '63.3'
). В wp-admin /includes /menu.php массив сортируется путем сравнения ключей с strnatcasecmp
.
С учетом этого можно было бы установить положение меню '63-foo'
или '63-bar'
, чтобы избежать конфликтов позиций. Это было бы особенно полезно для плагинов, где в настоящее время они могут устанавливать положение, которое может вызвать конфликты в некоторых темах или с другими плагинами.
Использование строк кажется очень хорошим. Я расчесал источник и не нашел никаких проблем, но, возможно, я что-то пропустил. Есть ли причины, по которым строка не может или не должна использоваться для позиции меню?
2 ответа
Помимо сортировки с помощью strnatcasecmp()
, единственное место, где я вижу, где можно использовать ключ, - это кто-то применение пользовательского заказа меню . Однако, поскольку меню уже сортируется на основе порядка клавиш, маловероятно, что ключи будут играть какую-либо роль в пользовательской сортировке. Я не вижу других причин, по которым это может вызвать проблемы, поэтому, вероятно, это безопасно. Я бы открыть билет , чтобы изменить встроенные документы.
Это часть скрипта, который я использую для своей темы. Он ищет пустую позицию, близкую к вашей желаемой позиции. Кажется, это достаточно простое решение для меня?
//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;
}