[wp-trac] [WordPress Trac] #40927: Passing a float as the position in add_menu_page can override other menu items
WordPress Trac
noreply at wordpress.org
Mon Jun 5 23:26:22 UTC 2017
#40927: Passing a float as the position in add_menu_page can override other menu
items
----------------------------+-----------------------------
Reporter: justinbusa | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Menus | Version: trunk
Severity: normal | Keywords:
Focuses: administration |
----------------------------+-----------------------------
If you pass a float value for the `$position` argument of `add_menu_page`,
PHP will convert it to an integer which overrides any other menu items
with that position.
Per the [http://php.net/manual/en/language.types.array.php PHP docs]...
>Floats are also cast to integers, which means that the fractional part
will be truncated. E.g. the key 8.7 will actually be stored under 8.
You can see this happening with the following snippet. The Test 2 menu
item will show but Test 1 will not.
{{{#!php
<?php
add_action( 'admin_menu', function() {
add_menu_page( 'Test 1', 'Test 1', 'manage_options', 'test-1', '',
'', 64 );
add_menu_page( 'Test 2', 'Test 2', 'manage_options', 'test-2', '',
'', 64.99 );
} );
}}}
However, if you pass `64.99` in as a string instead of a float, Test 1
will show.
Patch attached, thanks!
--
Ticket URL: <https://core.trac.wordpress.org/ticket/40927>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list