web-dev-qa-db-fra.com

Comment puis-je supprimer ou masquer la page d'exportation dans le menu WordPress?

J'essaie de supprimer la page export.php du menu d'administration de WordPress -> des outils pour un multisite afin que seul l'administrateur du réseau puisse la voir.

J'ai le code suivant jusqu'à présent, mais je n'arrive pas à le faire fonctionner.

//***************************************************
// Remove export Page
//***************************************************
function remove_menu_export_pages() {
    remove_menu_page('export.php'); 
}
add_action( 'admin_init', 'remove_menu_export_pages' );

Comment puis-je résoudre ça?

4
Oudin

En cas de doute sur une fonction WordPress, consultez le Codex: Function_Reference/remove_menu_page .

La fonction correcte est remove_submenu_page accroché à admin_menu.

add_action( 'admin_menu', 'remove_submenu_wpse_82873' );

function remove_submenu_wpse_82873() 
{
    global $current_user;
    get_currentuserinfo();

    // If user not Super Admin remove export page
    if ( !is_super_admin() ) 
    {
        remove_submenu_page( 'tools.php', 'export.php' );
    }
}

Et ensuite, vous voudrez probablement également bloquer l'accès direct à cette page via l'adresse URL (http://example.com/wp-admin/export.php):

add_action( 'admin_head-export.php', 'prevent_url_access_wpse_82873' );

function prevent_url_access_wpse_82873()
{
    global $current_user;

    // Only Super Admin Authorized, exit if user not
    if ( !is_super_admin() ) {

      // User not authorized to access page, redirect to dashboard
      wp_redirect( admin_url( 'index.php' ) ); 
      exit;
    }
}
4
brasofilo