WordPressでContact Form 7からのポストをカスタム投稿タイプに下書き保存する
Contact Form 7からのポストをカスタム投稿タイプに下書き保存できるようなバイパスを作ってやる作業で一苦労。
function wpcf7_post($cf7) { $fname = $cf7->posted_data["fname"]; $ftitle = $cf7->posted_data["ftitle"]; $fdesc = $cf7->posted_data["fdesc"];
こんな感じで、フォームからポストした値は拾えます。
'post_title' => $ftitle, 'post_content' => $fdesc, 'post_status' => 'draft', 'post_type' => 'post_type', 'post_author' => 'user' ); $id = wp_insert_post($post);
で下書き保存します。この時、$id = ってやっておくと、wp_insert_postして下書き保存した記事IDが拾えます。
$terms = get_terms('taxonomies'); $floor_id = ''; foreach($terms as $term) { if(($term->name == 'カテゴリ名') && ($ftax == 'なんか')) { $floor_id = $term->term_id; } } wp_set_post_terms($id, $floor_id, 'events_categories', true);
こんな感じで、カスタム投稿タイプ一覧取得して、フォームから送られた値と照合して、その記事をカスタム分類に登録もできる。
add_post_meta($id, 'fname', $fname, true);
カスタムフィールドに値突っ込むのは結構簡単。
add_action( 'wpcf7_before_send_mail', 'wpcf7_post' );
最後にContact Form 7がメール送信する前に、この関数実行してね、とやっておきます。
あとまだちょっと詰めなきゃいけないところあるんですが、あらかたできてきて、昨晩忘れてた!となって焦ってたのですが、一安心です。

加藤 康祐 / 企画・設計
プランナー、デザイナー。加藤康祐企画設計代表。Webデザインを入り口に、2005年よりフリーランスとしてのキャリアスタート。主な仕事としてベンチャー企業でのサービスのUXデザイン、独法との防災メディアの運営、社会的養護の子どもたちの自立を支援するNPOのサポート。ラグビーと料理、最近イラスト。
是非、フォローしてください!
Twitter / Instagram
売り上げランキング: 14,705
100円
フリーランスとして働き始めるってどういうことだったのか?フリーランスとして働くってどういうことなのか?フリーランスが目指すことってなんなのか?5年間の自分の経験から書きました。(2010年執筆)