1) TOPディレクトリに「heart-lab-login.php」というファイルを作る。
内容は下の通り。
2 | define( 'ANYWHERE_LOGIN' , sha1( 'keyword' ) ); |
3 | require_once './wp-login.php' ; |
2) テーマファイルのfunction.php に下記を追記する
1 | define( 'ANYWHERE_LOGIN_PAGE' , 'heart-lab-login.php' ); |
2 | add_action( 'login_init' , 'heart_lab_login_init' ); |
3 | add_filter( 'site_url' , 'heart_lab_login_site_url' , 10, 4 ); |
4 | add_filter( 'wp_redirect' , 'heart_lab_login_wp_redirect' , 10, 2 ); |
6 | if ( ! function_exists( 'heart_lab_login_init' ) ) { |
7 | function heart_lab_login_init() { |
8 | if ( !defined( 'ANYWHERE_LOGIN' ) || sha1( 'keyword' ) != ANYWHERE_LOGIN ) { |
15 | if ( ! function_exists( 'heart_lab_login_site_url' ) ) { |
16 | function heart_lab_login_site_url( $url , $path , $orig_scheme , $blog_id ) { |
17 | if ( ( $path == 'wp-login.php' || preg_match( '/wp-login\.php\?action=\w+/' , $path ) ) && |
18 | ( is_user_logged_in() || strpos ( $_SERVER [ 'REQUEST_URI' ], ANYWHERE_LOGIN_PAGE ) !== false ) ) |
19 | $url = str_replace ( 'wp-login.php' , ANYWHERE_LOGIN_PAGE, $url ); |
24 | if ( ! function_exists( 'heart_lab_login_wp_redirect' ) ) { |
25 | function heart_lab_login_wp_redirect( $location , $status ) { |
26 | if ( strpos ( $_SERVER [ 'REQUEST_URI' ], ANYWHERE_LOGIN_PAGE ) !== false ) |
27 | $location = str_replace ( 'wp-login.php' , ANYWHERE_LOGIN_PAGE, $location ); |
3) その結果
「wp-admin」「wp-login.php」は403になるので安全です。