web-dev-qa-db-fra.com

Page d'administration rediriger vers une autre page d'administration

Comment puis-je rediriger certaines pages de l'administrateur WordPress vers une autre page de l'administrateur?.

Par exemple, je ne veux jamais qu'un utilisateur voie wp-admin/about.php devrait toujours être redirigé vers wp-admin/index.php.

Il y a aussi quelques plugins qui redirigent vers une page d'accueil de plugins avec des promotions que je veux pouvoir vérifier si cette URL est ensuite redirigée vers cette URL.

1
Shae

Vous pouvez utiliser get_current_screen() pour vérifier sur quelle page vous êtes, puis redirigez vers une page d’administrateur spécifique.

get_current_screen() retourne l'objet d'écran comme

WP_Screen Object
(
    [action] => 
    [base] => dashboard
    [columns:WP_Screen:private] => 0
    [id] => dashboard
    [in_admin:protected] => site
    [is_network] => 
    [is_user] => 
    [parent_base] => 
    [parent_file] => 
    [post_type] => 
    [taxonomy] => 
    [_help_tabs:WP_Screen:private] => Array
        (
        )

    [_help_sidebar:WP_Screen:private] => 
    [_screen_reader_content:WP_Screen:private] => Array
        (
        )

    [_options:WP_Screen:private] => Array
        (
        )

    [_show_screen_options:WP_Screen:private] => 
    [_screen_settings:WP_Screen:private] => 
)

Vous pouvez utiliser la touche base pour identifier la base de la page!

Exemple:-

add_action('current_screen', 'wpse_225416_redirect_admin_page');
/**
 * Redirect specific admin page
 */
function wpse_225416_redirect_admin_page() {
    $my_current_screen = get_current_screen();
    if (isset($my_current_screen->base) && $my_current_screen->base == 'about') {
        wp_redirect(admin_url());
        exit();
    }
}

Utilisez current_screen hook car avant cette get_current_screen() ne renverra rien.

2
Sumit