はじめに
最近、妻の仕事のひとつとして「Wordpressのユーザのパスワードを月初めに更新する」という作業があり、いつもポチポチ手動で更新作業をしていました。
月初めなので土日も更新作業をする時があります(年末年始もこの作業をしていました)
効率化できないかと色々調べた結果、半自動化することに成功したので、今回はその方法を紹介します。
WordPressでユーザのパスワード更新を半自動化する方法
さっそくですが、以下の方法です。
- パスワード更新用関数を用意する
- パスワード更新用関数をCronで動作させる
それぞれ順番にみていきます。
パスワード更新用関数を用意する
まず、パスワード更新用関数を用意します。
具体的にはWordpressの外観
→テーマエディター
を開きます。
右の方のテーマファイルからfunctions.php
を選択します。
ファイル内で以下を追記します。
// パスワード更新用の関数
function password_update_function($password) {
// wp_set_password(password, userId) : userIdのpasswordを更新する
wp_set_password($password, 2);
};
add_action( 'password_update_function_cron', 'password_update_function' );
上記コメントで記載していますが、
wp_set_password(password, userId)
により、userIdのpasswordを更新することができます。
また、userIdの確認方法ですが、
管理画面のユーザー
→ユーザー一覧
を選択します。
ユーザの一覧が表示されますが、右の方にID
列があり、この値を指定します。
今回はID:2
のユーザのパスワード更新をしたかったので、wp_set_password($password, 2);
と記載しています。
また、以下の部分についてですが、
add_action( 'password_update_function_cron', 'password_update_function' );
これは、password_update_function
をpassword_update_function_cron
という名前で登録するという意味です。
これはこの後説明するCronで使います。
パスワード更新用関数をCronで動作させる
次に、先ほど作成した関数をCronで動作させます。
Cronとは特定のプログラムを指定した時間に実行するためのプログラムです。
ここでは大きく以下のステップがあります。
- 「WP Control」プラグインをインストールする
- Cronを設定する
- Cronの動作させてみる
それぞれ解説します。
「WP Control」プラグインをインストールする
まず、Cronの設定をするためにプラグインをインストールしましょう。
Cronを設定できるのであれば、他のプラグインでもOKです。
今回はWP Controlをインストールします。
インストール方法は省きますが、Wordpress管理画面のツール
→Cron イベント
が表示されるようになればOKです。
Cronを設定する
次に先ほどインストールしたプラグインを使ってCronを設定します。
WordPress管理画面のツール
→Cronイベント
を開きます。
その後、新規追加
を押します。
設定画面が表示されるので、それぞれ以下を指定し、イベントの追加
を押します。
- イベント種別:Standard cron event
- フック名:password_update_function_cron
- 引数:[“パスワード”] (更新したいパスワードを引数に指定)
- 次の実行:
於
を選択し、日付と時間を指定 - 頻度:好きな頻度を選択 (繰り返さないを選択すると、今回の設定が消えてしまうので注意)
押下後、イベントが作成されていることを確認します。
Cronの動作させてみる
ここまでで準備が整ったので、Cronの動作を確認してみます。
以下のいずれかの方法でCronを動作させましょう。
- イベントにカーソルをあてると
今すぐ実行
が表示されるのでクリックする→先ほど設定したイベントが即座に実行されます - イベントにカーソルをあてると
編集
が表示されるのでクリックする→次の実行
の時間を指定する→その時間になるとイベントが実行されます
動作後、実際にユーザのパスワードが変更されているかを確認してください。
まとめ
今回はWordpressでユーザのパスワード更新を半自動化してみました。
完全に自動化できなくても、Cronで事前に設定することでだいぶ楽になりました。
Wordpressでユーザのパスワード更新を半自動化する記事は意外と見当たらないので、この記事が役に立つと幸いです。