There are two ways to affect where CPTs appear in the admin menu: using menu_position
and controlling when the CPTs are registered.
Using decimal numbers hasn’t been reliable in my experience; using an integer like 21
, 22
, etc. has been more effective. If you have so many CPTs there aren’t enough integers, the other trick is to register the one you want first first, then register the second, then register the third. By controlling the code order, and keeping the menu_position
the same for all of them, WP will put them in the order you register them in.