【佐藤様】パスワード保護期間の変更について functions.phpの変更が保存できない場合

「パスワード保持期間を変更したく、下記コードをfunction.phpに追加しましたが、更新できず下記エラーメッセイージがでます」というご相談を頂きました。


WordpressのSEO対策ならRoot-013 Root-013ではWordPress・SEO対策・アフィリエイトなどサイト運営に関するご質問に無料でお答えしております。
WordPress 無料相談 アフィリエイト SEO 無料相談 無料!WPインストール代行・集客サポート

パスワード保護期間の変更について

シーンは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の注記を無視してファイルを上書きできます。しかし、問題があった場合やはりサイトにアクセスできなくなるのでバックアップは必要です。

参考にして頂ければ幸いです。

コメントをどうぞ

  1. 佐藤です。パスワードの保護期間を変更するため、ご指示の通りに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
    ==========================================

    1. >佐藤様
      ご相談ありがとうございます。
      一応申し上げておきますが、特に作業の”指示”というものはしておりません。
      あくまで質問に対する回答をさせて頂いただけです。
      functions.php編集の危険性についても十分に記載させて頂いたかと思います。

      アップしたfunctions.phpのパスワードの記述に問題があったのではないでしょうか。
      functions.phpのアップロード・ダウンロードで他のファイル自体に影響が出ることはありません。
      他のファイルに手を付けていないのであれば
      ・パスワード期間変更の記述を削除する
      ・正常に動いていた際のfuctions.phpをアップし直す
      といった形を取るしかないかなと思います。

      前述の通り、
      1.ファイルのバックアップを取っておく
      2.ファイルに変更を加える
      3.問題があったら過去の問題無いファイルにアップし直せるようにしておく
      の「3」をお試しください。

コメントを残す

メールアドレスが公開されることはありません。

コメントの前にご確認ください。

  • コメントは承認制のため、反映・表示までお時間を頂きます。
  • メールアドレス等の入力も必須ではありませんので入力の必要はありません。お気軽にどうぞ。(冷やかしは止めてね!)
  • コメントや返信があっても通知は届きませんのでご注意下さい。
  • 忙しい時はレスが遅れることもあります。
  • 当ページによる一切の不利益および損害に関し、責任を取ることはできません。