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, debe seguir dos pasos.
En el siguiente código, estoy usando el tablero como el nombre de mi nuevo wp-admin. Cambie el panel de control en el siguiente código a lo que quiera 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-template.php es el código que determina la url del administrador.
Usando el admin_url
filtro puede cambiar con éxito 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');
Puede hacer una prueba para ver cuál es su 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 observa al hacer clic en el administrador, no todo funciona y algunos de los enlaces pueden darle 404 no encontrado o algo similar.
En segundo lugar, 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 cuando se trata de editar .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 colóquelo en su carpeta de complementos o en la carpeta de complementos mu. (recuerde cambiar cada instancia del tablero a su URL de administrador preferida)
<?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');
¿Cuestiones?
No he tenido ninguno en más de un año con este método. Puede notar que wp-admin todavía funcionará, que tipo de apesta, pero es más una precaución que otra cosa. Tenía algunos complementos mal escritos que codificaban wp-admin en algunos lugares que no se cargaban al intentar bloquear o redirigir wp-admin. Estoy seguro de que hay una manera de hacer esto con htaccess, pero no lo he descubierto con éxito. Además, esto no se ha probado en sitios múltiples ni nada de eso.
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 .htaccess
RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]
Cree un archivo en la carpeta mu-plugins llamada new-admin.php
y agregue 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 administrador. Aquí hay un enfoque que probé a continuación. Si bien esto a continuación no funciona , creo que está en el camino correcto. No estoy totalmente seguro de qué gancho usar. htaccess podría ser una mejor alternativa, pero seguía recibiendo bucles de redireccionamiento cuando lo intentaba 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' );
}
}
}
+1
prefieren decir "no" con mucha más frecuencia de lo que dicen "sí", así que ten cuidado :)