The custom_menu_order WordPress PHP filter enables or disables custom ordering of the administration menu.
Usage
add_filter('custom_menu_order', 'my_custom_menu_order_function');
function my_custom_menu_order_function($custom) {
// your custom code here
return $custom;
}
Parameters
$custom(bool): Determines whether custom ordering is enabled. Default isfalse.
More information
See WordPress Developer Resources: custom_menu_order
Examples
Enable custom menu ordering
Enable custom menu ordering by returning true:
add_filter('custom_menu_order', 'enable_custom_menu_order');
function enable_custom_menu_order($custom) {
return true;
}
Disable custom menu ordering
Disable custom menu ordering by returning false:
add_filter('custom_menu_order', 'disable_custom_menu_order');
function disable_custom_menu_order($custom) {
return false;
}
Enable custom menu ordering for admins only
Enable custom menu ordering only for users with the manage_options capability (usually administrators):
add_filter('custom_menu_order', 'enable_custom_menu_order_for_admins');
function enable_custom_menu_order_for_admins($custom) {
if (current_user_can('manage_options')) {
return true;
}
return false;
}
Enable custom menu ordering based on a user role
Enable custom menu ordering for users with a specific role, in this case, ‘editor’:
add_filter('custom_menu_order', 'enable_custom_menu_order_for_editors');
function enable_custom_menu_order_for_editors($custom) {
$user = wp_get_current_user();
if (in_array('editor', $user->roles)) {
return true;
}
return false;
}
Enable custom menu ordering based on a user ID
Enable custom menu ordering for a specific user with a user ID of 3:
add_filter('custom_menu_order', 'enable_custom_menu_order_for_user_id');
function enable_custom_menu_order_for_user_id($custom) {
$user = wp_get_current_user();
if ($user->ID === 3) {
return true;
}
return false;
}