fix menu item visibility

This commit is contained in:
Abhijit Bhatnagar 2025-08-10 00:22:24 +05:30
parent 01a7f967a4
commit 38067e490a

View file

@ -28,23 +28,7 @@ add_action(
// Remove all admin menu separators. // Remove all admin menu separators.
remove_all_admin_menu_separators(); remove_all_admin_menu_separators();
// 2) Ensure the "WordPress Admin" return link is present on first load. // 2) Add custom Helix menu items.
if ( ! get_option( 'helix_use_default_admin', false ) ) {
global $admin_page_hooks;
if ( ! isset( $admin_page_hooks['wordpress-admin'] ) ) {
add_menu_page(
'WordPress Admin',
'WordPress Admin',
'read',
'wordpress-admin',
'wordpress_admin_callback',
'dashicons-wordpress',
2
);
}
}
// 3) Add custom Helix menu items.
add_menu_page( add_menu_page(
'Helix Posts', 'Helix Posts',
'Posts', 'Posts',
@ -68,11 +52,6 @@ add_action(
10 10
); );
/**
* Ensure the "WordPress Admin" return link is present when landing on Helix, even on the first load
* after switching modes in the same request.
*/
/** /**
* Remove all admin menu separators. * Remove all admin menu separators.
*/ */
@ -95,22 +74,31 @@ function remove_all_admin_menu_separators() {
add_action( add_action(
'admin_menu', 'admin_menu',
function () { function () {
// Only show the "WordPress Admin" link when in Helix mode. global $pagenow;
$use_default_admin = get_option( 'helix_use_default_admin', false );
if ( $use_default_admin ) {
return;
}
// Add a menu item to go back to default WordPress admin. // Check if we're going to the Helix page by looking at the sanitized request.
add_menu_page( $page_requested = filter_input( INPUT_GET, 'page', FILTER_SANITIZE_URL );
'WordPress Admin', // Page title. $is_helix_request = ( 'admin.php' === $pagenow && 'helix' === $page_requested );
'WordPress Admin', // Menu title. $use_default_admin = get_option( 'helix_use_default_admin', false );
'read', // Capability.
'wordpress-admin', // Menu slug. // Always show the WordPress Admin link when navigating to Helix, or when not in default admin mode.
'wordpress_admin_callback', // Callback function. if ( $is_helix_request || ! $use_default_admin ) {
'dashicons-wordpress', // Icon. // If this is a Helix request, ensure we're in Helix mode.
2 // Position (after main Helix menu). if ( $is_helix_request ) {
); update_option( 'helix_use_default_admin', false );
}
// Add a menu item to go back to default WordPress admin.
add_menu_page(
'WordPress Admin', // Page title.
'WordPress Admin', // Menu title.
'read', // Capability.
'wordpress-admin', // Menu slug.
'wordpress_admin_callback', // Callback function.
'dashicons-wordpress', // Icon.
2 // Position (after main Helix menu).
);
}
}, },
1000 1000
); );