ログインの仕組みについて
-
テーマ改良の勉強中で疑問が出て来たのでアドバイスお願いします。
よくある、管理画面URLを変更する、というのをよそ様の記事を参考に書いてみたんですが、ログインしている時に変更したログインフォームにアクセスしても普通にログインフォームが表示されたままになります。function.php———————————
define(‘LOGIN_CHANGE_PAGE’,’wp-login-change.php’);
add_action(‘login_init’,’login_change_init’ );
add_filter(‘site_url’,’login_change_site_url’, 10, 4 );
add_filter(‘wp_redirect’, ‘login_change_wp_redirect’, 10, 2 );
if ( ! function_exists( ‘login_change_init’ ) ) {
function login_change_init() {
if ( !defined( ‘LOGIN_CHANGE’ ) || sha1( ‘keyword’ ) != LOGIN_CHANGE ) {
status_header( 403 );
exit;
}
}
}
if ( ! function_exists( ‘login_change_site_url’ ) ) {
function login_change_site_url( $url, $path, $orig_scheme, $blog_id ) {
if ( $path == ‘wp-login.php’ &&
( is_user_logged_in() || strpos( $_SERVER[‘REQUEST_URI’], LOGIN_CHANGE_PAGE ) !== false ) )
$url = str_replace( ‘wp-login.php’, LOGIN_CHANGE_PAGE, $url );
return $url;
}
}
if ( ! function_exists( ‘login_change_wp_redirect’ ) ) {
function login_change_wp_redirect( $location, $status ) {
if ( strpos( $_SERVER[‘REQUEST_URI’], LOGIN_CHANGE_PAGE ) !== false )
$location = str_replace( ‘wp-login.php’, LOGIN_CHANGE_PAGE, $location );
return $location;
}
}site_urlはインストールしたWP本体のURLを出力、wp_redirectはWP内でページジャンプする時の関数ということはわかるんですが、login_change_site_urlの中身を下記に変えるとログアウトできずにダッシュボードに戻って来てしまいます。
if($path==’wp-login.php’&&(!is_user_logged_in()||strpos($_SERVER[‘REQUEST_URI’],LOGIN_CHANGE_PAGE)!==false)){$url=str_replace(‘wp-login.php’,LOGIN_CHANGE_PAGE,$url);}
elseif($path==’wp-login.php’&&(is_user_logged_in()||strpos($_SERVER[‘REQUEST_URI’],LOGIN_CHANGE_PAGE)!==false)){$url=site_url(‘/wp-admin/’);}ログインしてない場合はフォームを、ログインしてる場合はフォームではなくダッシュボードのトップへということはできますか?
どうもログインの仕組みをどこか勘違いしている気がします。
- トピック「ログインの仕組みについて」には新たに返信することはできません。