web-dev-qa-db-fra.com

Quelle est la meilleure façon de remplacer /wp-admin/ms-delete-site.php

J'ai un réseau multi-site et je souhaite sécuriser le fichier /wp-admin/ms-delete-site.php afin qu'il ne s'exécute pas. Nous voulons gérer les suppressions de sites à partir de la ligne de commande uniquement.

J'ai ajouté un appel à wp_die () en haut pour le moment, mais je préférerais gérer cela dans un plugin et ne pas modifier les fichiers de base WP.

Quel est le meilleur moyen d'implémenter cela dans un plugin?

2
Rodrigo M

Une autre alternative consiste à regarder le crochet map_meta_cap et à supprimer la capacité de l'utilisateur à delete_site. Si vous avez un ensemble restreint d'utilisateurs ou un contexte lorsque vous souhaitez autoriser delete_site, vous pouvez autoriser cette fonctionnalité.

2
C C

Vous avez raison, l'édition est un non-non .

Au lieu de cela, vous pouvez le faire.

add_action( 'current_screen', 'wpse242553_no_delete_site_screen' );
function wpse242553_no_delete_site_screen() {
    // Check to see if we're using the CLI client. If so, bail out.
    if ( 'cli' == php_sapi_name() ) {
        return;
        // I'm not sure this is strictly necessary.
    }
    if ( 'ms-delete-site' == get_current_screen()->base ) {
        // You can add whatever message you like here,
        // or even use wp_safe_redirect() to go elsewhere.
        wp_die( 'Sorry, we only delete sites from the command line.' );
    }

}

Mettez-le dans un Doit utiliser le plugin pour l'appliquer sur tous les sites de votre réseau.

Références

1
Pat J