Les gens continuent à poser cette question, mais ils continuent à le marquer comme un doublon. La réponse choisie pour cela, cependant, n’est pas vraiment une réponse à la question.
Pour renommer l’administrateur wordpress, vous devez suivre deux étapes.
Dans le code suivant, j'utilise tableau de bord comme nom de mon nouvel administrateur. Dans le code ci-dessous, modifiez le tableau de bord en indiquant le nom de votre nouvel administrateur.
D'abord, vous devez dire à wordpress que vous souhaitez modifier l'URL de l'administrateur.
Sur la ligne 2558, wp-includes / link-template.php est le code qui détermine l’URL de l’administrateur.
En utilisant le admin_url
filtre, vous pouvez modifier avec succès l'URL de l'administrateur avec la fonction suivante:
function my_custom_admin_url($path) {
return str_replace('wp-admin', 'dashboard', $path);
}
add_filter('admin_url', 'my_custom_admin_url');
Vous pouvez tester pour voir quelle est votre nouvelle URL en faisant ceci:
function whats_my_admin_url() {
$url = admin_url();
echo '<pre><code>'; print_r( $url ); echo '</code></pre>';
}
add_action( 'admin_notices', 'whats_my_admin_url' );
Cependant, si vous remarquez en cliquant sur l’administrateur que tout ne fonctionne pas et que certains des liens peuvent vous donner 404 non trouvés ou quelque chose de similaire.
Deuxièmement, changez le fichier .htaccess dans votre répertoire racine wordpress et ajoutez ce qui suit au début, avant toute chose.
#CUSTOM ADMIN URL REWRITE
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#CUSTOM ADMIN URL REWRITE
À présent, je ne suis pas un expert en matière de modification de .htaccess, de sorte que certaines de ces choses pourraient ne pas être nécessaires. Cependant, je n'ai jamais trouvé que cela ne fonctionnait pas.
Voici le tout. Créez un fichier et déposez-le dans votre dossier plugins ou mu-plugins. (n'oubliez pas de changer chaque instance du tableau de bord en votre URL d'administrateur préférée)
<?php
/**
* Plugin Name: Change My Admin URL
* Plugin URI: http://wordpress.stackexchange.com/questions/106/can-i-rename-the-wp-admin-folder
* Description: Changes the admin url where wp-admin becomes dashboard (or whatever you change it to)
* Version: 1.0
* Author: Bryan Willis
* Author URI: http://profiles.wordpress.org/codecandid
* License: GPL2
*/
/*
#CUSTOM ADMIN URL REWRITE FOR HTACCESS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#CUSTOM ADMIN URL REWRITE
*/
function my_custom_admin_url($path) {
return str_replace('wp-admin', 'dashboard', $path);
}
add_filter('admin_url', 'my_custom_admin_url');
Problèmes?
Je n’en ai pas eu depuis plus d’un an avec cette méthode. Vous remarquerez peut-être que wp-admin fonctionnera toujours quel genre de merde, mais c'est plus une précaution que tout. J'avais des plugins mal écrits qui wp-admin codés en dur à certains endroits et qui ne se chargeaient pas en essayant de bloquer ou de rediriger wp-admin. Je suis sûr qu'il y a un moyen de faire cela avec htaccess, mais je ne l'ai pas compris avec succès. En outre, cela n'a pas été testé sur multisite ou quoi que ce soit du genre.
Mise à jour: approche alternative
C'est assez similaire, mais pour une raison quelconque, ma réponse ci-dessus n'a pas fonctionné sur tous les hôtes que j'ai essayés.
Ajouter à .htaccess
RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]
Créez un fichier dans le dossier mu-plugins appelé new-admin.php
et ajoutez-le ici:
<?php
define('WP_ADMIN_DIR', 'admin');
defined('SITECOOKIEPATH') || define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) );
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);
add_filter('site_url', 'wpadmin_filter', 10, 3);
function wpadmin_filter( $url, $path, $orig_scheme ) {
$old = array( "/(wp-admin)/");
$admin_dir = WP_ADMIN_DIR;
$new = array($admin_dir);
return preg_replace( $old, $new, $url, 1);
}
Remarque: cette approche semblait mieux fonctionner sur certains hôtes, mais le problème était de ne pas rediriger les liens wp-admin vers la nouvelle URL d'administrateur. Voici une approche que j'ai essayée ci-dessous. Bien que cela ne fonctionne pas ci-dessous, je pense que c'est sur la bonne voie. Je ne sais pas trop quel crochet utiliser. htaccess pourrait être une meilleure alternative, mais je continuais à avoir des boucles de redirection lorsque j'essayais de cette façon.
add_action('init', 'redirect_wp_admin_url_to_404');
function redirect_wp_admin_url_to_404(){
$redirect_to = $_SERVER['REQUEST_URI'];
if(count($_REQUEST)> 0 && array_key_exists('redirect_to', $_REQUEST)){
$redirect_to = $_REQUEST['redirect_to'];
$check_wp_admin = stristr($redirect_to, 'wp-admin');
if($check_wp_admin){
wp_safe_redirect( '404.php' );
}
}
}
+1
ils préfèrent dire "non" plus souvent qu'ils ne disent "oui", alors soyez prévenus :)