この記事は最後に更新してから1年以上経過しています。

Login rebuilder 2.8.0の変更内容を紹介

説明

先々週のアップデート」では、ダッシュボードの「ログインのログ」ウィジェット内に現在のユーザー(管理者のみ)のログイン状況を簡潔なメッセージで表示しましたが、一週間ほど使ってみると、もう少し詳しい情報が欲しくなりました。そんなわけで、ログイン中のユーザー情報を表示する新しいウィジェットを用意しました。

ログイン中のユーザー情報

前バージョン2.7.4では、メッセージの表示を以下のようなコードで判定しました。

$sessions = WP_Session_Tokens::get_instance( $profile_user->ID );
if ( count( $sessions->get_all() ) === 1 ) :

get_allメソッドは、メタキーが'session_tokens'のユーザーメタ情報を取得するもの。このユーザーメタ情報は、ユーザーがログインした際に追加され、ログアウトすると削除されるようになっており、メタキー'session_tokens'のユーザーメタ情報を持つユーザーがログイン中のユーザーとなります。このことをふまえて今回追加したのが「ログイン中のユーザー」ウィジェット。以下が管理者がログインした際のウィジェットの表示例です。

管理者のダッシュボードに追加された「ログイン中のユーザー」ウィジェットには現在ログインしているユーザーを一覧で表示

このウィジェットではユーザーエージェント情報をもとにOSとブラウザの種別を簡略化した内容で表示しています。主要なものには対応しましたが、意図した表示にならなかった場合は今後のアップデートで対応いたします。

またこの「ログイン中のユーザー」ウィジェットは1分間隔で内容を更新するようになっており、基本的になページ更新不要です(再ログイン後はページ更新が必要)。

複数の場所でログイン

この状態で別のブラウザを起動し、同じ管理者のアカウントでログイン。「ログイン中のユーザー」ウィジェットは次のように変わります。

「ログイン中のユーザー」ウィジェットでは2箇所以上でログインしているユーザーを赤字で表示

赤字のメッセージに変わり、ユーザーリストの対象ユーザーも赤字で表示されます。このようにすることで、複数の場所でのログインを検知しやすくなるのではないでしょうか。

管理者以外の「ログイン中のユーザー」ウィジェット

「ログイン中のユーザー」ウィジェットは、管理者の場合は自動で表示されますが、そのほかのユーザーに表示させる場合は設定ページで「すべてのユーザーに「ログイン中のユーザー」ウィジェットを表示する。」をチェックしてください。

「設定」「ログインページ」のページ下に「ログイン中のユーザー」ウィジェットを表示する。」をチェック

なお管理者以外の場合、ユーザーリストの内容は本人のアカウントのみとなります。

そのほかの変更点

「ログイン中のユーザー」ウィジェットの登場にあわせて「ログインのログ」ウィジェットの内容でもOSとブラウザを簡易表示するようになります(新しいログのみ)。また、「ログインのログ」ウィジェットの内容も1分間隔で更新されます。

最後に内部的な仕様の変更になりますが、ログインした際のログを記録するタイミング(処理するアクション)が変わりました。これはSNSなどのOAuthを利用したログインのログを記録するための対応となります。


最終更新 : 2022年07月20日 16:51

お勧め

get_block_editor_settings(2021年8月17日 更新)

array get_block_editor_settings( array $custom_settings, WP_Block_Editor_Context $block_editor_context )
ブロックエディター設定内容を取得する。

wp_insert_attachment(2018年5月27日 更新)

mixed wp_insert_attachment( mixed $args [ , string $file = false[ , int $parent = 0 [ , bool $wp_error = false ] ] ] )
メディア(添付ファイル)を登録する。

remove_all_shortcodes(2018年5月27日 更新)

void remove_all_shortcodes( )
すべてのショートコードを削除する。

is_wp_error(2020年8月31日 更新)

bool is_wp_error( mixed $thing )
WP_Errorオブジェクトか調べる。

delete_user_setting(2022年1月31日 更新)

bool | null delete_user_setting( string | array $names )
ユーザーインターフェイス設定を削除する。