Login rebuilder:プラグイン作ってみました

説明

昨年投稿した「ログインページを変える」をプラグイン化。ログインページを独自の名前のページ変更し、標準のログインページwp-login.phpを使用できないようにするプラグインです。部外者によるwp-login.phpのアクセスにお悩みの方にお勧めします。また2.0.0では「XML-RPCリクエストの管理機能」を追加。2.2.0では管理者のログイン時にメールで通知する機能を追加しました。

インストールおよび使用方法

1. Login rebuilderのアーカイブファイルを解凍し、フォルダごと /wp-content/plugins/ の中に入れてください。
最新のLogin rebuilderのアーカイブファイルは、「wordpress.org(194KB)(wordpress.orgは申請中)」からダウンロードしてください。
2. 管理ページのプラグインページで「Login rebuilder」を有効にしてください。
管理者権限のアカウントでログインし、サイドナビの「プラグイン」をクリック。一覧の中から「Login rebuilder」の「有効化」をクリックしてください。
3. 「設定」-「ログインページ」を開きます。

各項目を順番に編集(画面は1.4.0)

  1. 「無効なリクエスト時の応答」は、新しいログインページを設定した後で、wp-login.phpへアクセスした場合の動作です。お好みで設定してください。
  2. 「ログインファイルのキーワード」は、自動的にランダムな8文字を生成しますので、基本的に変更する必要はありません。
  3. 「新しいログインファイル」は、wp-login.phpに代わる新しいログインページのファイル名を設定してください。初期値はいくつか用意しているものの中からランダムに選択したファイル名となりますが、ご自身でわかりやすい名前に変更してください。
    【重要】バージョン1.3.0からWordPressがインストールされたディレクトリ以外のページ名が指定できるようになりました。従来通りページに名に'/'が含まれていない場合はWordPressがインストールされたディレクトリに、'/'が含まれている場合はサイトのドキュメントルートディレクトリからのパスとして解釈し、入力ボックスに下にパス名とURLを表示するように変更しました。
  4. 「新しいログインファイル」の入力ボックスの右側には、青色で「書き込み可能」か、オレンジ色で「書き込み不可」と表示されます。「書き込み可能」の場合は本プラグインによって新しいログインファイルを生成・更新しますが、「書き込み不可」の場合は手動で新しいログインファイル(UTF-8、BOM無)をアップロードしてください。
    【重要】バージョン1.3.0から入力ボックスの右側ではなく、下のパス名の横に表示するように変更しました。合わせてファイルが存在する場合は「ファイルあり」、存在しない場合は「ファイルなし」と表示しますので、参考にしてください。
  5. 「購読者専用ログインファイル」は、購読者のみがログインできるページ(寄稿者、投稿者、編集者、管理者はログイン不可)を設置する場合に使用します。「購読者専用ログインファイル」「第2ログインファイル」は、管理者以外の権限グループ(ロール)を選択することで、その権限グループのみがログインできるログインページを設置する場合に使用します。「第2ログインファイル」の入力ボックスの右側には、青色で「書き込み可能」か、オレンジ色で「書き込み不可」と表示されます。「書き込み可能」の場合は本プラグインによって購読者専用ログインファイル第2ログインファイルを生成・更新しますが、「書き込み不可」の場合は手動で新しいログインファイル(UTF-8、BOM無)をアップロードしてください。
  6. 「ステータス」を「稼働中」に変更して、「変更を保存」をクリックしてください。
  7. 設定内容が保存され、保存後のステータスが「稼働中」になったら、新しいログインページが利用可能です。なお、新しいログインファイルが正常に配置できていない場合、ステータスは「準備中」に戻ります。
4. ステータスが「稼働中」になったら一度ログアウト。
一度ログアウトログアウトして、新しいログインページが表示されることを確認(表示内容は変わりません)。いつもと同じIDとパスワードでログインしてみてください。

よくある質問

Q. wp-login.phpは不要になりますか。
A. 本プラグインではwp-login.phpを読み込んで使用します。決して削除しないでください。
Q. wp-adminディレクトリにアクセスできなくなった。
A. 通常、ログイン前にwp-adminディレクトリにアクセスすると、wp-login.phpへ自動的に遷移してログインしていますが、本プラグインを稼働中はwp-login.phpへのアクセスが制限されるためログインできません。これは新しいログインページを部外者に教えないための仕様です。
Q. 新しいログインページからログインできなくなった。
A. 原因としては内部のキーワードが一致しないことが考えられます。その場合は新しいログインファイルを削除し、もう一度新しいログインページを設定してください。
Q. 新しいログインファイルの名前は変えたほうがいいですか。
A. 本プラグインが設定したログインファイル名の使用は推奨しません。適度な長さでサイト管理者が覚えやすい名前を設定してください。なお、WordPressのファイル名は使用できません(一応3.0以降のファイル名は設定できないようにしていますが、十分にご注意ください)。
Q. マルチサイトに対応していますか。
A. マルチサイト機能でサブディレクトリを使用する場合については動作確認済みです。なおマルチサイトの場合、ログインファイル名は共通になります。1.3.0以降は、サイト別に異なるログインファイルを指定できます(メインサイトでは任意のディレクトリに配置可能、サブサイトはwp-login.phpと同じディレクトリになります)。
Q. このプラグインが無効でも新しいログインページからログインできます。
A. 新しいログインページからはいつでもログインできてしまいます。もし不要な場合は、新しいログインファイルを削除してください。
Q. 購読者専用ログインページは必ず使用しなければなりませんか。
A. こちらは必須ではありません。購読者専用ログインページが必要な場合のみ設定してください。
Q. 新しいログインページで正しいIDとパスワードを入力してもダッシュボード画面が表示されない。
A. 何らかのPHPエラーにより、ダッシュボード画面の切り替えが失敗している可能性があります。wp-config.phpのWP_DEBUGの値をtrueに変更して、プラグインやテーマのエラーがないか確認し、エラーがあった場合は解消してください。
Q. nginxで使用できますか。
A. 使用可能です。なおKUSANAGI環境ではログインページが英語で表示される場合があります。

更新履歴

  • 2024.11.07 Login rebuilder 2.8.6をリリースしました。$_SERVER['SERVER_ADDR']などが存在しない場合について処理内容を見直しました。
  • 2024.09.04 Login rebuilder 2.8.5をリリースしました。バージョン2.8.3の不具合対応の内容を見直しました。
  • 2024.09.04 Login rebuilder 2.8.4をリリースしました。バージョン2.8.3の各設定ページが表示されない不具合を修正しました。
  • 2024.09.03 Login rebuilder 2.8.3をリリースしました。プラグイン内部で保持するホスト名について$_SERVER['HTTP_HOST']が存在しない場合に'Unknown'を適用するように変更しました。
  • 2023.11.07 Login rebuilder 2.8.2をリリースしました。「ログインファイル キーワード」を保存する際のサニタイズ処理を強化しました。ウィジェット向けにユーザーのログイン情報を取得できなかった際、エラーを回避するように調整しました。
  • 2023.04.23 Login rebuilder 2.8.1をリリースしました。【重要】設定ページの「ログインファイル キーワード」においてエスケープ処理されていない脆弱性があり、こちらを修正しました。あわせて「ログインファイル キーワード」を保存する際、サニタイズするように変更しました。
  • 2022.07.20 Login rebuilder 2.8.0をリリースしました。2.7.4で追加した複数ログイン表示を発展させ、新しいウィジェットを追加しました。またログインした際にそのログを記録するタイミング(フックするアクション)を変更しました。
  • 2022.07.05 Login rebuilder 2.7.4をリリースしました。ダッシュボードの「ログインのログ(log of login)」ウィジェットにアカウントのログイン状況を表示するようにしました(管理者限定)。
  • 2022.05.23 Login rebuilder 2.7.3をリリースしました。一部の翻訳テキストを調整しました。あわせて不適切な関数の呼び出しを修正しました。
  • 2021.11.12 Login rebuilder 2.7.2をリリースしました。マルチサイトにおいて、いくつかのケースでログインページのURLを正しく書き換えできない不具合を修正しました。
  • 2021.06.09 Login rebuilder 2.7.1をリリースしました。ログインページ(メイン)がログイン履歴のないIPアドレスからアクセスされた際にサイト管理者に通知する機能を追加しました。
  • 2021.03.08 Login rebuilder 2.7.0をリリースしました。ログインページ(メイン)のアクセスログを保存し、ダッシュボードで表示できるようになりました。
  • 2020.12.02 Login rebuilder 2.6.9をリリースしました。管理者権限を所有するユーザーがログインした際にそのユーザーのメールアドレスに通知する機能を拡張し、サイト管理者のメールアドレスを送信メールのCCまたはBCCに指定できます。
  • 2020.08.07 Login rebuilder 2.6.7をリリースしました。著者ページの閲覧を制限している場合、WordPress 5.5で実装されるuser XMLサイトマップを生成しないようにしました。
  • 2020.04.28 Login rebuilder 2.6.6をリリースしました。一部のバージョンのPHP環境においてタイプヒンティング関連のエラーが発生する不具合を修正しました。
  • 2020.04.16 Login rebuilder 2.6.5をリリースしました。ダッシュボードのログウィジェットに表示される日時について任意の書式を設定できるようになりました。あわせてダッシュボードのログウィジェットにおいていくつかの要素でidが重複していた不具合を修正しました。
  • 2019.09.09 Login rebuilder 2.6.3をリリースしました。一部のブラグインと組み合わせて使用した際に発生するエラーに対応しました。
  • 2019.08.08 Login rebuilder 2.6.2をリリースしました。マルチサイト(サブドメイン)のサブサイト向けのログインページにおいて、ディレクトリを含んだパス名が指定できるようになりました。
  • 2019.04.22 Login rebuilder 2.6.0をリリースしました。REST API / Usersの利用を制限する機能を追加しました。詳しくは『Login rebuilder 2.6.0の新機能紹介』をご覧ください。
  • 2018.12.13 Login rebuilder 2.5.1をリリースしました。特定の条件で有効なIPアドレスがログに保存できない不具合を修正しました。
  • 2018.12.10 Login rebuilder 2.5.0をリリースしました。任意のファイルを設定することでログインできないようにする機能を追加しました。2.5.0の新機能は『Login rebuilder 2.5.0の新機能を紹介』。
  • 2018.10.01 Login rebuilder 2.4.4をリリースしました。WordPress本体を任意のディレクトリにインストールしたマルチサイト環境でアクティベートできない問題を解決しました。
  • 2018.05.21 Login rebuilder 2.4.3をリリースしました。'wp-login.php'の'confirmaction'アクションはバージョン4.9.6以降のみスルーするように変更しました。
  • 2018.05.21 Login rebuilder 2.4.2をリリースしました。4.9.6で追加されたユーザーリクエストメールにオリジナル確認用URLが適用されるように調整しました。なお2.4.1で追加した機能については準備中。2.4.1の新機能は『Login rebuilder 2.4.1の新機能を紹介』。
  • 2018.03.08 Login rebuilder 2.4.0をリリースしました。著者ページのリクエストが制限可能になりました。詳しくは『Login rebuilder 2.4.0の新機能を紹介』。
  • 2017.08.31 Login rebuilder 2.3.0をリリースしました。ログイン履歴と無効なリクエストの履歴データがダウンロード可能になりました。詳しくは『Login rebuilder 2.3.0の新機能を紹介』。
  • 2017.03.16 Login rebuilder 2.2.0をリリースしました。管理者のログイン時にメールで通知する機能を追加しました。
  • 2016.06.12 Login rebuilder 2.1.0をリリースしました。メールアドレスとパスワードによる認証の制御、認証時のエラーメッセージの抽象化制御を追加しました。
  • 2015.12.29 Login rebuilder 2.0.0をリリースしました。XML-RPCリクエストの管理機能を追加しました。詳しくは『Login rebuilderに「XML-RPC設定」を追加しました』。
  • 2015.09.15 Login rebuilder 1.4.5をリリースしました。AJAXリクエスト時、必要な権限を確認してから処理を行うように変更しました。
  • 2015.08.19 Login rebuilder 1.4.4をリリースしました。管理者のダッシュボードにログ表示ウィジェットを追加しました。詳しくは『Login rebuilderのログ表示機能を紹介』。
  • 2015.05.23 Login rebuilder 1.4.3をリリースしました。「第2ログインファイル」のURLを取得する「wp_secondary_login_urlメソッド」を追加しました。詳しくは『Login rebuilderで第2ログインページのURLを取得する』。
  • 2015.02.26 Login rebuilder 1.4.2をリリースしました。意図しないAJAXリクエストに対して処理内容を変更しました。
  • 2014.12.25 Login rebuilder 1.4.1をリリースしました。オプションメニュー登録時のパラメータを調整しました。
  • 2014.12.19 Login rebuilder 1.4.0をリリースしました。購読者専用ログインページの名前を変更し、任意の権限グループ(管理者以外)が選択できるようになりました。
  • 2014.09.14 Login rebuilder 1.3.1をリリースしました。パスワードリセットできなかった不具合を修正しました。
  • 2014.07.23 Login rebuilder 1.3.0をリリースしました。ログインファイルが任意のディレクトリに配置できるようになりました。
  • 2014.06.03 Login rebuilder 1.2.3をリリースしました。有効期間(30分)切れに関連する処理を若干変更しました。
  • 2014.06.02 Login rebuilder 1.2.2をリリースしました。有効期間(30分)切れの際、リロードボタンを表示するように変更しました。
  • 2014.06.02 Login rebuilder 1.2.1をリリースしました。設定ページについて更新できる有効期間(30分)を設定しました。
  • 2014.05.15 Login rebuilder 1.2.0をリリースしました。CSRF対策およびいくつかの不具合を修正。あわせてログ機能を追加しました。
  • 2014.03.03 Login rebuilder 1.1.3をリリースしました。投稿パスワードの入力時もブロックしていたため、ブロックしないように修正しました。
  • 2014.02.10 Login rebuilder 1.1.2をリリースしました。残っていたデバッグ用のコードを削除しました。
  • 2013.11.15 Login rebuilder 1.1.1をリリースしました。一部のプラグインの組み合わせで発生するエラーを回避しました。
  • 2013.11.14 Login rebuilder 1.1.0をリリースしました。購読者専用ログインページが利用できるようになりました。
  • 2013.09.24 Login rebuilder 1.0.3をリリースしました。いくつかの不具合を修正しました。
  • 2013.09.12 Login rebuilder 1.0.2をリリースしました。一部の環境において代替ログインファイルを認識できない不具合を修正しました。
  • 2013.04.16 Login rebuilder 1.0.1をリリースしました。いくつかの不具合を修正しました。
  • 2013.01.18 Login rebuilder 1.0.0をリリースしました。

最終更新 : 2024年11月07日 09:22

お勧め

parse_blocks(2024年7月24日 更新)

array[] parse_blocks( string $content )
投稿コンテンツをパースする。

single_post_title(2012年9月6日 更新)

string single_post_title( [ string $prefix = '' [ , bool $display = true ] ] )
投稿ページのタイトルを表示する。

timer_stop(2021年7月23日 更新)

string timer_stop( [ int $display = 0 [ , int $precision = 3 ] ] )
タイマー開始時からの経過時間を取得する。

is_ssl(2022年7月2日 更新)

bool is_ssl( )
リクエストがSSLかどうか調べる。

wp_title_rss(2014年4月10日 更新)

void wp_title_rss( [ string $sep = '»' ] )
フィード向けのページタイトルを出力する。