質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

2170閲覧

Wordpressの「Contact Form 7」Fatal errorについて質問。

Martin-iknow

総合スコア12

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2019/03/16 03:03

Wordpressの「Contact Form 7」で質問です。

送信を押すと、下記のエラーが突然表示されるようになりました。
「Contact Form 7」のプラグインを一度削除して最新にしインストールし直して、
function.php、各プラグインを外してみましたがやはりNGでした…
試しにデフォルトの「twenty系」のテーマを使うと正常に動作します。
テーマが関係しているようですが、どこをどうすれば良いかわかりません、、
ちなみにテーマはオリジナルで使っています。そのオリジナルが今回、突然NGになってしまったようです。

Fatal error: Uncaught Error: Call to a member function get_status() on null in /home/sitename/www/wp/wp-content/plugins/contact-form-7/includes/contact-form.php:734 Stack trace: #0 /home/sitename/www/wp/wp-content/plugins/contact-form-7/includes/controller.php(14): WPCF7_ContactForm->submit() #1 /home/sitename/www/wp/wp-includes/class-wp-hook.php(284): wpcf7_control_init() #2 /home/sitename/www/wp/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters(NULL, Array) #3 /home/sitename/www/wp/wp-includes/plugin.php(531): WP_Hook->do_action(Array) #4 /home/sitename/www/wp/wp-includes/class-wp.php(387): do_action_ref_array('parse_request', Array) #5 /home/sitename/www/wp/wp-includes/class-wp.php(737): WP->parse_request('') #6 /home/sitename/www/wp/wp-includes/functions.php(1105): WP->main('') #7 /home/sitename/www/wp/wp-blog-header.php(16): wp() #8 /home/sitename/www/index.php(17): require('/home/sitename...') #9 {main} thrown in /home/sitename/www/wp/wp-content/plugins/contact-form-7/includes/contact-form.php on line 734

解消できる方法、情報があれば教えてください。
何卒宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momosiri

2019/03/16 03:51

テーマやプラグインのバージョン、Wordpress本体のバージョンなどを記載すると有効な回答が得られるかも知れませんね。
Martin-iknow

2019/03/16 04:09

ありがとうございます。 WPの本体は5.1.1の最新版です。cintactform7も最新でバージョン 5.1.1になっています。テーマは完全にオリジナルに近い状態なのでバージョンはありません。すみませんが、ご教授宜しくお願い致します。
CHERRY

2019/03/16 22:25 編集

オリジナルテーマということですが、テーマを WordPress 標準テーマの twentynineteen や twentyseventeen に変更しても発生するでしょうか? 発生しなくなるのであれば、オリジナルテーマの内容と干渉していると思われますので、テーマの内容がわからないと回答が難しいです。
Martin-iknow

2019/03/18 00:46

twentynineteen や twentyseventeen に変更すると正常に動作します。
CHERRY

2019/03/19 01:56 編集

WordPress 標準テーマでは、動作しますか... そうであれば、Contact Form 7 側の問題ではなく、呼び出しているテーマ側での設定や HOOK や変数の内容等が原因と思われますので、オリジナルテーマの内容がわからない状況では、回答は難しいです。
Martin-iknow

2019/03/23 01:08

ありがとうございます。まずはテーマがどういった状態なのか確認をしてみますね。
guest

回答1

0

ベストアンサー

似たような症状に遭遇しています。

まず、エラーメッセージですが

Call to a member function get_status() on null

と書いてるので、
nullオブジェクトに対してメソッドを呼び出そうとしたがnullなので、そんなメソッドがない
という状態です。

私が調査、調整を行なった手順は下記の通りです。

該当の

null in /home/sitename/www/wp/wp-content/plugins/contact-form-7/includes/contact-form.php:734

にて、

$submission->get_status()

の記載がありましたのでとりあえず
var_dump すると、中身が出てきます。
中身が出てくるということは、nullではなく何かしらが入っていると考え、エラーとの整合性が取れなくなるのですが
よく見ると、最後の NULL と出力されています。
つまり、この処理は2回行われていて、1回目は正常に通るが、2回目にNULLになりエラーとなるようです。

で、なぜ2回よばれるのか・・・と思い、コールスタック上を追いましたが、wpcf7_control_initの時点で2回呼ばれているようです。
とりあえずここで

global $wpcf7_control_init_inited; if ($wpcf7_control_init_inited) { return; }

のような感じで1回しか動作しないように調整したところ、エラーが解消されました。

根本的にはwpcf7_control_initが2回よばれる、もっと上の関数も2重で呼ばれている可能性があるので
上層を調べるべきな気がしますが・・・とりあえず解消したのでご参考までに

投稿2019/03/28 08:21

mikkame

総合スコア5036

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問