Notice: force_ssl_login is deprecated since version 4.4.0! Use force_ssl_admin() instead.
WordPress
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() を使ってください。
スポンサーリンク
エラー箇所は
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に対応させるためにインストールさせたようでした。。。
スポンサーリンク