ワードプレス、ログインURLを変更する方法【プラグインなし】

Web運用(サイト構築)

​WordPressのログインURLをプラグインなしで変更する方法として、functions.phpを編集する方法があります。以下に手順を解説します。​

注意: functions.phpの編集は、サイトの動作に影響を及ぼす可能性があります。必ずバックアップを取ってから作業を行ってください。​

functions.phpの編集

  1. テーマエディターにアクセス:
    • WordPress管理画面の左メニューから「外観」→「テーマエディター」を選択します。​
    • 右上の「テーマの選択」から使用中のテーマ(子テーマを使用している場合は子テーマ)を選びます。​
  2. functions.phpを開く:
    • 右側の「テーマファイル」一覧からfunctions.phpをクリックして開きます。​
  3. コードを追記:
    • 以下のコードをfunctions.phpの末尾に追加します。
// カスタムログインページの定義
define('LOGIN_CHANGE_PAGE', '新しいログインファイル名.php');

// 403エラーを返す関数
if (!function_exists('wp_login_url_403_error')) {
    function wp_login_url_403_error() {
        // LOGIN_CHANGEを定義し、これが正しい場合403エラーは回避
        if (!defined('LOGIN_CHANGE') || sha1('任意のキーワード') != LOGIN_CHANGE) {
            status_header(403);
            exit;
        }
    }
}
add_action('login_init', 'wp_login_url_403_error');

// サイトURLを新しいログインURLに変更
if (!function_exists('wp_login_change_site_url')) {
    function wp_login_change_site_url($url, $path, $orig_scheme, $blog_id) {
        if ((strpos($path, 'wp-login.php') !== false) &&
            (is_user_logged_in() || strpos($_SERVER['REQUEST_URI'], LOGIN_CHANGE_PAGE) !== false)) {
            $url = str_replace('wp-login.php', LOGIN_CHANGE_PAGE, $url);
        }
        return $url;
    }
}
add_filter('site_url', 'wp_login_change_site_url', 10, 4);

// ログアウト時のリダイレクトURLを変更
if (!function_exists('wp_logout_redirect_setting')) {
    function wp_logout_redirect_setting($location, $status) {
        if (strpos($_SERVER['REQUEST_URI'], LOGIN_CHANGE_PAGE) !== false) {
            $location = str_replace('wp-login.php', LOGIN_CHANGE_PAGE, $location);
        }
        return $location;
    }
}
add_filter('wp_redirect', 'wp_logout_redirect_setting', 10, 2);
PHP
  1. 保存:
    • '新しいログインファイル名.php'には、新しく作成するログインファイルの名前を入力します。
    • 例: ‘custom-login.php”任意のキーワード’には、推測されにくいランダムな文字列を入力します。
    • 編集が完了したら、ファイルを保存します。​

新しいログインファイルの作成

  • 新規ファイルの作成:
    • wp-login.phpと同じディレクトリ(通常はWordPressのルートディレクトリ)に、新しいログインファイル(例: custom-login.php)を作成します。​
  • コードを記述:
    • 新しいログインファイルに以下のコードを記述します。
<?php
define('LOGIN_CHANGE', sha1('任意のキーワード'));
require_once './wp-login.php';
?>
PHP
  • 作成したファイルをサーバーにアップロードします。​

動作確認

  1. 新しいログインURLにアクセス:
    • ブラウザでhttps://あなたのドメイン/新しいログインファイル名.phpにアクセスし、ログイン画面が表示されることを確認します。​
  2. 旧ログインURLの確認:
    • https://あなたのドメイン/wp-login.phpにアクセスし、403エラーが表示されることを確認します。

以上の手順で、プラグインを使用せずにWordPressのログインURLを変更することができます。

コメント

タイトルとURLをコピーしました