web-dev-qa-db-ja.com

functions.phpが2回インクルードされています PHP 致命的なエラー

私は過去に多くのサイトでうまく使用していたカスタムPHPスクリプト(これはwp-load.php経由でWordpressをインポートしています)を持っていますアップデート(現在はバージョン4.7.1)。

状況はこれです:

  • Wp-load.phpを必要とするPHPスクリプトは、フォームデータを処理するためにjavascriptを介して呼び出されます。
  • フォーム処理は数週間前までは問題なく動作しました。今では500の内部サーバーエラーが発生しています。
  • PHPログには、次のようなエラーが表示されています。

    PHP致命的エラー:/ path/to/site/wp-content/themes/uc /にmy_wp_nav_menu_args()(以前は/path/to/site/wp-content/themes/uc/functions.php:15で宣言されていました)を再宣言できません18行目のfunctions.php

  • エラーはfunctions.phpが2回呼び出されていることを示しているようです。それをテストするために、functions.phpのすべての関数をコメントアウトしました。また、私のPHPスクリプトは問題なく動作しました。

  • それにもかかわらず、このサイトの残りの部分は問題なく動作します。ただし、負荷はかなり遅くなりますが、ローカルマシンで実行しています。うーん。

  • ちなみに、このサイトの他の部分については、特別なことでも珍しいことでもありません。私はACFをいろいろなことに使っていますが、それについて問題があったことは一度もありません。

Functions.phpがどういうわけか2回呼び出されているのは本当ですか?もしそうなら、どうですか?他の誰かが最近のWPコアアップデートで同様の問題を抱えていますか? Mary BethとVictorは本当の愛を見つけるでしょうか。

「Wordpress Wayでお金を燃やす」の次のエピソードで、これらすべての詳細を調べてください。

どんな助けでも大歓迎です。

1
Mark Kanning

ああ、そうねえ:オールチェックプラグイン最初のルーチンは私に時間を節約できたでしょう。

どうやらサードパーティのACFプラグイン、 https://wordpress.org/plugins/acf-google-font-selector-field/ が問題の原因でした。私が言及した遅いページロードもまた改善されました。

残念です。私はその愚かなプラグインが必要です。

2
Mark Kanning

1)あなたのカスタムphpスクリプトで、あなたが望むアクションを実行した後にexit;をするなら、問題は解決されるべきだと思います。

2)また、functions.phpの冒頭で次のようなものを使うことができます。

if (in_array(__FILE__, get_included_files())) return;
0
T.Todua