サポート » テーマ » ログインの仕組みについて

  • テーマ改良の勉強中で疑問が出て来たのでアドバイスお願いします。
    よくある、管理画面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/’);}

    ログインしてない場合はフォームを、ログインしてる場合はフォームではなくダッシュボードのトップへということはできますか?
    どうもログインの仕組みをどこか勘違いしている気がします。

  • このトピックに返信するにはログインが必要です。