前提・実現したいこと
WordPressのMW WP Formを利用して、未ログインの方からメールを送ってもらった際に、画像のアップロードも許可し、その情報を投稿に下書き状態で保存したいと考えています。
以下のコードでテキスト情報は問題なく投稿に下書き保存されました。
WordPress
1// MW WP Form 2タイトル:[mwform_text name="title"] 3カテゴリ:[mwform_radio name="category" children="1:カテゴリ1,2:カテゴリ2"] 4本文:[mwform_textarea name="honbun" rows="10"]
PHP
1// functions.php 2function save_posts_form_xxx(){ 3 $new_post = array( 4 'post_type' => 'post', 5 'post_status' => 'draft', 6 'post_title' => $_POST['title'], 7 'post_author' => 1, 8 'post_content' => $_POST['honbun'], 9 'post_category' => array( $_POST['category'] ), 10 ); 11 $post_id = wp_insert_post( $new_post, true ); 12} 13add_filter( 'mwform_before_send_admin_mail_mw-wp-form-xxx', 'save_posts_form_xxx' ); 14// xxxはMW WP Formのフォームキー 15
ここでファイルを追加し、画像やファイルのアップロードをできるようにしたのですが、それを投稿に保存する方法が知りたいです。
試したこと
フォームタグを追加し、上記「mwform_before_send_admin_mail_mw-wp-form-xxx」フックの中で値を取得してみたのですが
WordPress
1// 上記に追加 2[mwform_file name="photo"]
PHP
1// functions.php 2function save_posts_form_xxx(){ 3 // $new_post = array( 4 // 'post_type' => 'post', 5 // 'post_status' => 'draft', 6 // 'post_title' => $_POST['title'], 7 // 'post_author' => 1, 8 // 'post_content' => $_POST['honbun'], 9 // 'post_category' => array( $_POST['category'] ), 10 // ); 11 // $post_id = wp_insert_post( $new_post, true ); 12 13 // 取得した値を確認 14 var_dump($_POST['photo']); 15 exit; 16} 17add_filter( 'mwform_before_send_admin_mail_mw-wp-form-xxx', 'save_posts_form_xxx' ); 18
// 出力 string(000) "https://www.xxxxxxxxx.jp/wp-content/uploads/mw-wp-form_uploads/000000000000000000000.png"
このように表示されます。恐らくテンポラリの画像URLだと思います。
(このURLにアクセスしても何も表示されませんでした。)
知りたいこと
上記フック内でアップロードした画像を投稿のアイキャッチ画像に設定する方法が知りたいです。
画像IDが取得できれば、なんとかできそうな気がするのですが、既に実装されている方や方法をご存じの方がいれば、ご教授いただきたいと思います。
ちなみに、普通に画像を投稿してメディアに保存されることは確認済です。
補足情報
WordPress及びMW WP Formは2020/5/26現在の最新版を使用しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/27 06:54
2020/05/27 07:35