ContactForm7のフォーム送信時に自動でブログ記事を作成する方法

こんにちは、ゾノ( @ozonosho )です。

さて、今日のブログではWordPressのプラグイン「Contact Form 7」でフォーム送信時に自動でブログ記事を作成する方法を紹介したいと思います。

この方法を利用すれば、たとえば応募フォームで送信された応募情報を利用してそのままブログを作成することができるので、新メンバー追加時の自己紹介ブログを自動で作成することなんかもできちゃいます。

カスタムフィールド項目にも対応可能!
自サイトの運用に活用できそうな方はぜひ参照ください。

ContactForm7のフォーム送信時に自動でブログ記事を作成する方法

実装は簡単で、下記のような関数をfunctions.phpに追加してください。

//フォーム送信時にブログ投稿をおこなう
function wpcf7_insert_post(){
	//送信情報を取得
	$submission = WPCF7_Submission::get_instance();
	if($submission) {
		$formdata = $submission->get_posted_data();
		$new_post = array(
			'post_type' => 'post',
			'post_title' => $formdata['your-title'],
			'post_status' => 'draft', //下書き
			'post_content' => $formdata['your-content']
		);
		//ブログ作成
		$post_id = wp_insert_post($new_post);
		//作成に成功した場合
		if(!is_wp_error($post_id)) {
			//カスタムフィールドのデータも登録する
			add_post_meta($post_id, 'your_field', $formdata['your_field']);
		}
	}
}
add_action('wpcf7_mail_sent', 'wpcf7_insert_post', 10, 1);

ContactForm7がメール送信時のフック「wpcf7_mail_sent」を用意してくれているので、このフックを利用して処理をおこないます。

$formdata[”]の中身は、問い合わせフォームでご自身が設定した項目名称を入れてください。

ブログ作成は関数「wp_insert_post」にて実行されます。
カスタムフィールドの値はwp_insert_postでは登録できないので、wp_insert_postが成功した場合にadd_post_metaで追加することでカスタムフィールドの値も同時に登録することができます。

問い合わせフォームを送信して無事にブログ記事が作成されていれば成功です。

おわりに

以上、今回の記事ではWordPressのプラグイン「Contact Form 7」でフォーム送信時に自動でブログ記事を作成する方法を紹介させていただきました。

当サイトで別途紹介している記事『ContactForm7のフォーム送信時にユーザー登録を自動でおこなう方法』と組み合わせれば、ユーザー登録をおこなってそのままそのユーザーの記事としてブログを作成することもできます。ぜひ色々と試してみてください。

つくりばのことが気になりましたか?

つくりばは、ココトモ・未来地図を自社で10年以上運営してきた知見をもとに、相談・コミュニティの開発と運営を支援しています。いきなりのご相談でなくて大丈夫です。まずは私たちの実績や考え方をご覧ください。

つくりばについて知る

← WordPressの一覧へ戻る

Webサービスの課題を、まずは無料相談で整理しませんか。

既存サービスの改善、新規立ち上げ、運用サポート、予算内での優先順位づけなど、今の状況に合わせてじっくりお話を伺います。まだ形になっていない段階のご相談も大丈夫です。

  • videocamオンライン対応
  • forum課題整理だけでも歓迎
  • payments概算費用の目安がわかる
無料相談を申し込む