「パスワード保持期間を変更したく、下記コードをfunction.phpに追加しましたが、更新できず下記エラーメッセイージがでます」というご相談を頂きました。
目次
パスワード保護期間の変更について
シーンはStrede liteを使用しています。今回、パスワード保持期間を変更したく、下記コードをfunction.phpに追加しましたが、更新できず下記エラーメッセイージがでます。対策をご教授下さい。
「致命的なエラーをチェックするためにサイトと通信できないため、PHP の変更は取り消されました。SFTP を使うなど、他の手段で PHP ファイルの変更をアップロードする必要があります。」
追加コード:下記の通りです。
function custom_postpass_time() {
2. require_once ABSPATH . ‘wp-includes/class-phpass.php’;
3. $hasher = new PasswordHash( 8, true );
4. setcookie( ‘wp-postpass_’ . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST[‘post_password’] ) ), time() + HOUR_IN_SECONDS, COOKIEPATH );
5. wp_safe_redirect( wp_get_referer() );
6. exit();
7.}
8.add_action( ‘login_form_postpass’, ‘custom_postpass_time’ );
functions.phpの上書きについて
>佐藤様
ご相談ありがとうございます!
コードの整合性の前に、ファイルが更新できていないのが問題ですね。
メッセージの通りになりますが、SFTPやFTPなどで、直接functions.phpをアップすることはできないのでしょうか?
恐らく 外観 > テーマ編集 から作業しようとしているかと思いますが、最近のバージョンでは追記するPHPの記述が問題無くても、このようなアラートで更新できない場合があります。
functions.phpはエラーがあると問題が解消されるまでサイトが表示されなくなり、管理画面にすらログインできなくなる可能性があります。
1.ファイルのバックアップを取っておく
2.ファイルに変更を加える
3.問題があったら過去の問題無いファイルにアップし直せるようにしておく
ということが必要です。
他「Theme editor」というプラグインがあります。
https://ja.wordpress.org/plugins/theme-editor/
このプラグインは今表示されているようなWordPressの注記を無視してファイルを上書きできます。しかし、問題があった場合やはりサイトにアクセスできなくなるのでバックアップは必要です。
参考にして頂ければ幸いです。
佐藤です。パスワードの保護期間を変更するため、ご指示の通りにfunctiom.phpをftpで上書きしましたが、上手くいかずホームページが正常に開かなくなりました。元に戻しても同じ状態です。そのためエラーログを確認しましたら、下記エラーログが記録されております。多分、テーマに関する対策をご教授下さい。使用しているテーマは Stride lite です。宜しく、お願いします。
==== エラーログ ============================
PHP Fatal error: Uncaught Error: Class ‘wp_bootstrap_navwalker’ not found in /virtual/htdocs/default/wordpress/wp-content/themes/stride-lite/header.php:56nStack trace:n#0 /virtual/htdocs/default/wordpress/wp-includes/template.php(688): require_once()n#1 /virtual/htdocs/default/wordpress/wp-includes/template.php(647): load_template(‘/virtual/htdocs…’, true)n#2 /virtual/htdocs/default/wordpress/wp-includes/general-template.php(41): locate_template(Array, true)n#3 /virtual/htdocs/default/wordpress/wp-content/themes/stride-lite/index.php(15): get_header()n#4 /virtual/htdocs/default/wordpress/wp-includes/template-loader.php(74): include(‘/virtual/htdocs…’)n#5 /virtual/htdocs/default/wordpress/wp-blog-header.php(19): require_once(‘/virtual/htdocs…’)n#6 /virtual/htdocs/default/index.php(17): require(‘/virtual/htdocs…’)n#7 {main}n thrown in /virtual/htdocs/default/wordpress/wp-content/themes/stride-lite/header.php on line 56
==========================================
>佐藤様
ご相談ありがとうございます。
一応申し上げておきますが、特に作業の”指示”というものはしておりません。
あくまで質問に対する回答をさせて頂いただけです。
functions.php編集の危険性についても十分に記載させて頂いたかと思います。
アップしたfunctions.phpのパスワードの記述に問題があったのではないでしょうか。
functions.phpのアップロード・ダウンロードで他のファイル自体に影響が出ることはありません。
他のファイルに手を付けていないのであれば
・パスワード期間変更の記述を削除する
・正常に動いていた際のfuctions.phpをアップし直す
といった形を取るしかないかなと思います。
前述の通り、
1.ファイルのバックアップを取っておく
2.ファイルに変更を加える
3.問題があったら過去の問題無いファイルにアップし直せるようにしておく
の「3」をお試しください。