WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです
Plug-in "Force Email Login" to restrict Wordpress login to email addresses (disable login with username)

ログインをメールアドレスに限定する(ユーザー名でのログインを無効にする)プラグイン「Force Email Login」

公開日: セキュリティ



Wordpressサイトの不正ログイン対策、何かしてますか??何もしてない?とっても危険だと思いますよ!!

サイトが動作しているサーバーへログインされてしまえばもちろんおしまいなお話ではあるのですが、サイトはサイトでできる限りの対策はしておきたいものです。

サーバー乗っ取りを除外して考えられる一番の対策はログイン画面へのアクセスを自身が接続する環境以外拒否すること。これをすればいつもログインする場所へ侵入されない(自宅なら泥棒などが侵入しない)限りログインは不可能になります。

そして次に挙げられるのが、


というプラグインを使って作者の記事一覧のURL末尾に表示される「ユーザー名」を他の文字列に変更すること。これも結構効果的です(経験上これで設定した偽ユーザー名でログインを仕掛けてくる輩がたくさんいました)。これにメールアドレスでのログインを拒否する設定を追加すれば結構堅牢なのではないかと思います。

今回紹介する「Force Email Login」は逆転の発想で、ユーザー名がそのまま作者の記事一覧のURL末尾に表示されてしまうのなら、ユーザー名でのログインを無効にしてしまえばいい!というプラグイン。前述した「Edit Author Slug」プラグインで作者一覧のスラグが変わってしまうことに不都合がある場合には良いと思います。

この紹介記事を最後に編集したときの環境・バージョンなど

プラグインは製作者によって日々更新されていくため、この紹介記事が最新バージョンのものであるとは限りません。参考までにこの記事の最終更新日時点におけるテスト環境、プラグインバージョン、プラグイン導入時の留意点などを記載しておきます。

プラグインを使用(試用)したテスト環境

  • テストサーバー:カラフルボックスログインをメールアドレスに限定する(ユーザー名でのログインを無効にする)プラグイン「Force Email Login」の画像|Knowledge Base
  • WordPressのバージョン:5.3
  • PHPのバージョン:7.3.11
  • テーマ:ha-Basic(オリジナルテーマ)
  • プラグインのバージョン:記事更新時のバージョン 0.6.0/最新バージョン 0.6.0

本記事を参考にWordpressサイトへプラグインの導入を検討される方へ

Wordpressは古くから無料で配布されているサイト作成ツール(CMS)で、随時改良が加えられており、さまざまなバージョンが存在します。さらにWordpressを動かすためのプログラムであるPHP、サイトのデータを保存しておくためのデータベースについても様々なバージョンがあります。そしてWordpress本体同様にプラグインについてもさまざまなバージョンが存在します。本記事を参考にプラグインの導入をお考えの方は、以下に留意の上でインストールするようにしてください。
  • テスト環境での動作に基づいた紹介記事ですので、すべての環境で正常に動作するかどうかは不明です
  • ※本記事の内容についてはページ内に記載しているプラグインバージョンのものになります。現在のバージョンと異なる場合、機能などが異なる場合があります。※また、ページによってはテスト環境、テストしたプラグインバージョン等の表示が本文内にない場合、ページタイトル下にある最終更新日当時の情報となりますので、現在のバージョンでは全く違う機能となっているかも知れません。
  • プラグインに無料版と有料版(Pro版)がある場合、特に記載がなければ無料版の情報のみを紹介しています
  • このページでプラグインを使用する際に必要なショートコードやコードなどは、コピーして使用することができますが、環境によっては記号などが文字化けすることがあります。コピーしたのに動作しない場合は特に「”」「’」などの記号を入力し直してみてください。
  • プラグイン本体の動作不具合や質問などは公式サイトのフォーラムなどで行ってください(ここでは質問にお答えすることはできません)

【Force Email Login】プラグインの設定画面や表示の日本語化と翻訳

【Force Email Login】プラグインは設定項目がないため翻訳の必要はありません。

【Force Email Login】プラグインのインストールと設定

インストール方法

インストールはプラグインの新規追加でプラグイン名で検索してインストールするか、ページ先頭の画像をクリックして表示されるWordpressのプラグイン公式配布ページがダウンロードしてからアップロードインストールします。

インストール方法の詳しい解説は

を参照ください

基本的な設定方法や使い方

設定はありませんので、有効化すればすぐに使用できます。

※「Wordpress ログイン メール 限定」などのキーワードでググるとfunctions.phpへコピーして行う方法の紹介記事が多数出てきます。基本的にこのプラグインは同じで

  • 入力されたメールアドレスと合致するユーザー名を探す
  • メールアドレスをユーザー名に置き換えてログイン試行する

という動作をします。どちらの方法でもいいとは思いますが、個人的には機能を有効/無効にするのがfunctions.phpへ直書きするコードよりもプラグインのON/OFFで簡単にできる点で【Force Email Login】をおすすめします。

【Force Email Login】プラグインの便利な使い方・カスタマイズ方法など

より便利に使うカスタマイズ技やテストサイトで使用した結果や感想、Wordpressのプラグイン公式配布ページには書かれていない事柄などを紹介します。

このプラグインを有効化してもログイン画面の文字列はそのままです。不都合が出るのは

  • ユーザー名またはメールアドレス
  • エラー: ユーザー名を入力してください。
  • エラー: そのユーザーネームまたはメールアドレスのアカウントは存在しません。
  • エラー: 無効なユーザー名かメールアドレス、または間違ったパスワードです。

の4つかと思います。これらをそれぞれ以下のように変更するコードを紹介しておきますので、テーマのfunctions.phpへコピペして利用ください。

  • メールアドレス
  • 空欄(何も表示しない)
  • ログインに失敗しました
  • ログインに失敗しました

ご自身の環境に合わせて変更する場合にはコード中の「ログインに失敗しました」などを書き換えればOKです。
※今表示されている文字列を任意のものに変更するためのコードですので、ログイン画面以外の文字列もこのコードに明細追加するだけで変更できるようになって便利なコードです。

/********** ログイン画面の文字列を変更 **********/
function custom_gettext( $translated, $text, $domain ) {
    $custom_translates = array(
        'default' => array(
'ユーザー名またはメールアドレス' => 'メールアドレス',
'<strong>エラー</strong>: ユーザー名を入力してください。' => '',
'<strong>エラー</strong>: そのユーザーネームまたはメールアドレスのアカウントは存在しません。' => 'ログインに失敗しました',
'<strong>エラー</strong>: 無効なユーザー名かメールアドレス、または間違ったパスワードです。' => 'ログインに失敗しました'
)
    );
    if ( isset( $custom_translates[$domain][$translated] ) ) {
        $translated = $custom_translates[$domain][$translated];
    }
    return $translated;
}
add_filter( 'gettext', 'custom_gettext', 10, 3 );
function trans_custom_gettext() {
    $args = func_get_args();
    $translated = $args[0];
    $text = $args[1];
    $domain = array_pop( $args );
    $translated = custom_gettext( $translated, $text, $domain );
    return $translated;
}
add_filter( 'gettext_with_context', 'trans_custom_gettext', 10, 4 );
add_filter( 'ngettext', 'trans_custom_gettext', 10, 5 );
add_filter( 'ngettext_with_context', 'trans_custom_gettext', 10, 6 );

【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「'」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

コードを転載する場合には

ご自身のサイトで当ページで紹介しているコードを転載される場合には当ページへのリンクを入れていただきますようお願いいたします


いちばんやさしいWordPressの教本 第4版 5.x対応 人気講師が教 える本格Webサイトの作り方 (「いちばんやさしい教本」シリーズ)
インプレス
大きな画面の操作手順で迷わない。人気のテーマで、パソコン&スマホ両対応のWebサイトを作れる!ソーシャルメディアとの連携やSEO対策、バックアップなどの運用面も丁寧に解説。
※表示している価格は単行本のものです
参考価格:1,738
※参考価格です。サービスやショップ、掲載時期などにより価格は異なりますのでご注意ください

WordPressのカスタマイズ・不具合対応などご相談ください

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

【スポンサーリンク】