La gente sigue haciendo esta pregunta, pero la gente sigue marcándola como un duplicado. Sin embargo, la respuesta elegida para esto realmente no es una respuesta a la pregunta.
Para cambiar el nombre del administrador de wordpress, debes seguir dos pasos.
En el siguiente código, estoy usando el panel de control como el nombre de mi nuevo administrador de wp. Cambie el panel de control en el código de abajo a lo que quiera para nombrar a su nuevo administrador.
Primero debe decirle a wordpress que desea cambiar la URL del administrador.
En la línea 2558 wp-includes / link.php / a> es el código que dertermines la url del administrador.
Usando el filtro admin_url
, puedes cambiar exitosamente la url del administrador con la siguiente función:
function my_custom_admin_url($path) {
return str_replace('wp-admin', 'dashboard', $path);
}
add_filter('admin_url', 'my_custom_admin_url');
Puedes hacer una prueba para ver cuál es tu nueva URL haciendo esto:
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' );
Sin embargo, si se da cuenta al hacer clic en el administrador, notará que no todo funciona y que algunos de los enlaces pueden proporcionarle 404 que no se encuentran o algo similar.
Segundo, cambie el .htaccess en su directorio raíz de wordpress y agregue lo siguiente al principio antes que nada.
#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
Ahora, no soy un experto en la edición de .htaccess, por lo que parte de esto podría no ser necesario. Sin embargo, nunca he encontrado que no funcione.
Aquí está todo el asunto. Cree un archivo y suéltelo en la carpeta de complementos o en la carpeta de complementos de mu. (recuerde cambiar cada instancia del panel de control a su url de administrador preferido)
<?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');
Issues?
No he tenido ninguno en más de un año usando este método. Puede notar que wp-admin todavía funcionará qué tipo de succión, pero es más una precaución que otra cosa. Tuve algunos complementos mal escritos que codificaban wp-admin en algunos lugares que no se cargarían al intentar bloquear o redirigir wp-admin. Estoy seguro de que hay una manera de hacer esto con el htaccess, pero no lo he descubierto con éxito. Además, esto no ha sido probado en multisitio o algo así nunca.
Actualización: Enfoque alternativo
Esto es bastante similar, pero por alguna razón, mi respuesta anterior no funcionó en todos los hosts que probé.
Añadir a .htaccess
RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]
Crea un archivo en la carpeta de los complementos de mu llamado new-admin.php
y agrega esto allí:
<?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);
}
Nota: Este enfoque parecía funcionar mejor en algunos hosts, pero aún tenía el problema de no redirigir los enlaces wp-admin a la nueva URL de administración. Aquí hay un enfoque que probé a continuación. Si bien esto no funciona creo que va por el buen camino. No estoy totalmente seguro de qué gancho utilizar. htaccess podría ser una mejor alternativa, pero seguí obteniendo bucles de redirección cuando lo intenté de esa manera.
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' );
}
}
}