Notice: force_ssl_login is deprecated since version 4.4.0! Use force_ssl_admin() instead.

1956 Views
WordPress
Notice: force_ssl_login is deprecated since version 4.4.0! Use force_ssl_admin() instead.

WordPressで画面が真っ白になった際などに、「wp-config.php」に
define(‘WP_DEBUG’, true);
を設定することがあると思いますが、その記述を追加したときに
Notice: force_ssl_login is deprecated since version 4.4.0! Use force_ssl_admin() instead.
または
Notice: force_ssl_login の使用はバージョン 4.4.0 から非推奨になっています ! 代わりに force_ssl_admin() を使ってください。

SNSでシェア♪

スポンサーリンク

 

エラー箇所は
wp-includes/functions.php on line 3831
といった記述が出てきました。

エラー内容を読む限り、WordPress4.4以降から「force_ssl_login」は非推奨になったから「force_ssl_admin()」を使えとのことですが、wordpressのコアファイルに問題があるような気がするので、あまり触れたくないファイルだなと思うのですが、このエラーできるなら直したいなと思い記事にします。

ちなみに書き始めた今はまだ解決方法がわかっていません!
行き当たりばったり、どのくらいの時間で解決できるかな?
スタート、2017/08/09/ 11:00
エンド、2017/08/09/ 11:31 無事解決できました!

 

環境

以下の環境で作業をしています。

・WordPress 4.8.1
・PHP Ver 5.6.22

使用するソフト
・sakuraエディタ(ディレクトリ内の文字列検索をするため、ぶっちゃけ検索できればなんでもいい)
・winscp(FTPにつなぐため、ぶっちゃけなんで…)

 

まず初めにやって見たこと

まずはサーバから「wp-includes」のディレクトリをローカルに保存することにします。
おそらく「force_ssl_login」の関数が使われているのがいけないはずなので、そこを全て「force_ssl_admin」に置換すれば治るんじゃね?

といった安易な考えです。

どうなるかな。。。

 

文字列検索をした結果

一体何ファイル書き換えが必要なのかなと思い、検索したところ、、、
「wp-includes\deprecated.php(3687,10) [UTF-8]: function force_ssl_login( $force = null ) {」
のみでした。

しかもファイル名から察するにエラーを出すために作られたような箇所じゃないか!

つまり、wp-includes内のファイルは関係ない!
ということになりました。。。
※多分ね?

 

じゃあ次は「wp-admin」ディレクトリを調査しよう

wp-includes同様、wp-adminのディレクトリをローカルに落として、文字列検索をしたところ、、、
1ファイルも引っかからない!!

え、じゃあwp-contentの中の何かなの!?
まさかプラグインとか!?

えー、、、

wp-content、やりますか、、、

 

wp-contentをローカルに落とす

のですが、プラグインやテーマディレクトリにファイルがたくさんあると、落とすのに時間がかかるので並行してインストールディレクトリ直下のファイルに「force_ssl_login」の記述が無いか調べました。

はい、結果ありませんでした!
くそー!

 

今度こそwp-contentのディレクトリを調べる

調べた結果、、、(まだ落とし終わってない、ファイル落とすのに15分かかった、、、)

み、見つけたー!
ただ、見つかったファイルが
「wp-content\plugins\wordpress-https\lib\WordPressHTTPS\Module\Core.php(280,9)」
だったので、プラグインかよ!

と思わず突っ込んでしまいました。

 

該当箇所を置換して治るかチェックしてみる

該当の記述が
「if ( force_ssl_login() && preg_match(‘/wp-login\.php$/’, $url) === 1 ) {」
となっていたので、
「if ( force_ssl_admin() && preg_match(‘/wp-login\.php$/’, $url) === 1 ) {」
と記述を変更すると、、、

サイトから該当のエラー記述が消えました!
ヤッホー!

 

まとめ

今回はプラグイン「WordPress HTTPS」が原因でしたが、プラグインのインストール状況では同様のNoticeが出てもおかしく無いと思います。

プラグインによっては更新がストップしていることもあるので、自力で実装可能な内容はWordPressのプラグインに頼らず解決させたいですね。

※ちなみに今回チェックしたサイトは前任の方がlolipopの共有SSLに対応させるためにインストールさせたようでした。。。

 

 

SNSでシェア♪

スポンサーリンク

関連記事