mirror of
https://ghproxy.net/https://github.com/abhijitb/helix.git
synced 2025-08-28 06:26:00 +08:00
switching from admin to helix feature complete
This commit is contained in:
parent
fa5b242783
commit
b91f540624
10 changed files with 1453 additions and 5 deletions
|
@ -1,7 +1,49 @@
|
|||
<?php
|
||||
add_action('admin_init', function () {
|
||||
$screen = get_current_screen();
|
||||
if (!is_admin() || $screen->id === 'toplevel_page_helix') return;
|
||||
wp_redirect(admin_url('admin.php?page=helix'));
|
||||
add_action('current_screen', function ($current_screen) {
|
||||
// Don't redirect if not in admin
|
||||
if (!is_admin()) return;
|
||||
|
||||
// Don't redirect AJAX requests
|
||||
if (wp_doing_ajax()) return;
|
||||
|
||||
// Don't redirect REST API requests
|
||||
if (defined('REST_REQUEST') && REST_REQUEST) return;
|
||||
|
||||
// Don't redirect cron jobs
|
||||
if (defined('DOING_CRON') && DOING_CRON) return;
|
||||
|
||||
// Check if we're already on the helix page or wordpress admin page
|
||||
if ( in_array( $current_screen->id, array( 'toplevel_page_helix', 'toplevel_page_wordpress-admin' ), true ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if user wants to use default WordPress admin
|
||||
$use_default_admin = get_option('helix_use_default_admin', false);
|
||||
if ($use_default_admin) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't redirect critical WordPress admin functions
|
||||
global $pagenow;
|
||||
$critical_pages = [
|
||||
'admin-ajax.php',
|
||||
'admin-post.php',
|
||||
'async-upload.php',
|
||||
'update.php',
|
||||
'update-core.php',
|
||||
'upgrade.php',
|
||||
];
|
||||
|
||||
if (in_array($pagenow, $critical_pages)) return;
|
||||
|
||||
// Capture the current admin URL to pass to Helix for routing
|
||||
$current_url = $_SERVER['REQUEST_URI'];
|
||||
$query_separator = strpos($current_url, '?') !== false ? '&' : '?';
|
||||
|
||||
// Build the redirect URL with the original path for React routing
|
||||
$redirect_url = admin_url('admin.php?page=helix' . $query_separator . 'helix_route=' . urlencode($current_url));
|
||||
|
||||
// Redirect all other admin pages to Helix
|
||||
wp_redirect($redirect_url);
|
||||
exit;
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue