0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ログインURLの変更

0
Posted at

WordPressでログイン画面URLをプラグインなしで変更する方法をメモします。WordPressは仕様としてログインURLの変更をサポートしていないので疑似的な変更方法です。

実装方法

my-loginでログイン画面を表示する

my-login にアクセスすると、内部的に wp-login.php を読み込みます。

function custom_login_page() {
    if ($_SERVER['REQUEST_URI'] === '/my-login') {
        require_once ABSPATH . 'wp-login.php';
        exit;
    }
}
add_action('init', 'custom_login_page');

wp-login.php をブロックする

直接 wp-login.php にアクセスするとエラーになります。

function block_wp_login() {
    if (strpos($_SERVER['REQUEST_URI'], 'wp-login.php') !== false) {

        if (defined('DOING_AJAX') && DOING_AJAX) return;

        // 403エラー
        status_header(403);
        nocache_headers();

        echo 'Forbidden';
        exit;
    }
}
add_action('init', 'block_wp_login');

wp-admin も未ログイン時はブロック

wp-admin 経由でログイン画面が出るのを防ぎます。

function block_wp_admin() {
    if (strpos($_SERVER['REQUEST_URI'], 'wp-admin') !== false && !is_user_logged_in()) {
        status_header(403);
        exit;
    }
}
add_action('init', 'block_wp_admin');

こちらは完全なURL変更ではなく入口を変えているだけで、REST API/xmlrpc.phpからのアクセスは可能です。堅牢な設計にしたい場合はプラグインやサーバー側で制御することがおすすめです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?