wordpressが久々に真っ白、get_userdatabyloginが非推奨になってエラー が出ていた

wordpressが久々に真っ白になった。
これは原因を調べないと〜!。

いや〜熱心で関心ですな。
違うんです、ずっとやってた作業に飽きていた時だったので、サボる機会を見つけたもんで、張り切っているだけなんです。

それじゃ久々にwp-config.phpでWP_DEBUGをtrueにして調べますか

wordpressのバージョンアップ

wordpressのバージョンアップ、こまめにやってますか?
セキュリティ的には新しいのが出たらやっておいた方がいいんだけど、バージョンアップしたことによってなにかしらエラーが出ると面倒クサイのでついつい、放置したままにしている人って多いですよね

今回はバージョン5.0.3にしたら真っ白になってしまった。

WP_DEBUGをtrueにしてデバッグモードに

しばらく自分が管理しているサイトでは問題なかったし、php案件も請け負う事がなかったのでWP_DEBUGのお世話にはならなかった。

なので今回久々にWP_DEBUGで状況判断をする。

だって真っ白じゃ、どうにもならんからね。

wordpressのルートディレクトリ、つまりwordpressをインストールしてある階層ね。
そこにwp-config.phpファイルがあるので一旦ダウンロードして編集する。

でwp-config.phpの結構、下の方に

* 開発者へ: WordPress デバッグモード

があるので、

define(‘WP_DEBUG’, false);

falseをtrueに変更

define(‘WP_DEBUG’, true);

出来たらwordpressのルートディレクトリに戻す。

真っ白になってたサイトを読み込むと、出ましたね〜、エラーメッセージ。

get_userdatabyloginは非推奨になったので代わりにget_user_byを使いなさい

というエラーメッセージ。

エラーの出所としてfunctions.phpとpluggable.phpがあげられていたので、調べに行く。

エラー個所が見つからない!

functions.phpとpluggable.phpをダウンロードしてきて、問題のget_userdatabyloginを検索してみるが、「なし」?

どういうこと?

functions.phpとpluggable.phpにget_userdatabyloginが使われていて、それをget_user_byにしたら問題解決かな〜と思っていたら全然違うみたい。

プラグインCrazy Bone (狂骨)の問題だった

で、ネットで情報集め。
あんまり、これに関する事が出てこないね。

でも見つけた。
今回はプラグインの問題だった。

プラグインCrazy Bone (狂骨)のファイルにget_userdatabyloginが使われいて、それがwpのバージョンアップによって非推奨になりエラーになっていた模様です。

Crazy Bone (狂骨)をインストールした状態でログインをするとget_userdatabyloginが使われて、さらにそこからの流れでfunctions.phpとpluggable.phpにget_userdatabylogin関係の処理が進むみたい。

解決策

プラグインCrazy Bone (狂骨)のplugin.phpを編集します。

240行あたり

public function cookie_expired_log($cookie_elements) {
if ( function_exists(‘get_userdatabylogin’) ) {
$user = get_userdatabylogin($cookie_elements[‘username’]);
$this->logging($user->ID, ‘cookie_expired’);
}
}

赤字の部分を次のように変更

$user = get_user_by( ‘login’, $cookie_elements[‘username’] );

 

もう一箇所。

public function cookie_bad_hash_log($cookie_elements) {
if ( function_exists(‘get_userdatabylogin’) ) {
$user = get_userdatabylogin($cookie_elements[‘username’]);
$this->logging($user->ID, ‘cookie_bad_hash’);
}
}

赤字の部分を次のように変更

$user = get_user_by( ‘login’,$cookie_elements[‘username’] );

get_userdatabyloginget_user_byに変更ということだね。

まとめ

プラグインか〜、
今回すんなりと解決したけどバージョンアップするとこの手のトラブルが起きるからいやなんだよね〜。

といいつつも、wpのバージョンアップはセキュリティの観点からはやっといた方が絶対いいです。

わたしのように面倒くさがりのあなた、やりなさい!

 


以上「wordpressが久々に真っ白、get_userdatabyloginが非推奨になってエラー が出ていた」という記事でした。
気に入ってもらえたらシェアしてくれると嬉しいです。