Home / admin / Redirect admin pages to any location
  • How to Redirect admin pages to any location

    redirect-admin-pages-to-any-location

    Redirecting the admin pages was something I needed to do for a recent project. The following snippet will let you redirect any of the admin pages to any location you wish based on the user ‘capability’. Another option would be to replace wp_redirect with wp_die(“some custom message”); to display a message instead of redirecting.

    wordpress snippet : PHP

    <>
    function wps_admin_pages_redirect() {
          global $pagenow;
          $admin_pages = array(
    				'edit-tags.php?taxonomy=category',
    				'edit-tags.php?taxonomy=post_tag',
    				'link-manager.php',
    				'options-writing.php',
    				'options-reading.php',
    				'options-discussion.php',
    				'options-media.php',
    				'options-privacy.php',
    				'options-permalink.php',
    			);
          if(in_array($pagenow, $admin_pages)){
          	wp_redirect( admin_url('/') ); exit;
          }
    }
    if(!current_user_can('edit_post')){
    add_action('admin_init', 'wps_admin_pages_redirect');
    }
    

    ( WordPress codex functions, hooks, in this snippet. )

    wp_redirect, edit_post, init, current_user_can, user_can, add_action, admin_url, wp,
  • Bryan

    You can’t use current_user_can() when in the global scope, within a plugin because it will cause Fatal error: Call to undefined function wp_get_current_user().