WP User Frontendで作ったフォームに添付した画像URLを取得したい
WP User Frontendに限った話しでは無いのですが、Wordpressで画像を添付保存した場合に、そのデータをエクスポートしたとします。
post_metaには画像ファイルのIDしか入っておらず、エクスポートデータから添付ファイル画像へのアクセスが面倒だという事は往々にして起こるのではないかと思います。
用途としては、申し込みフォームをWP User Frontendで作り、その内容をWP CSV Exporterを使ってCSVでダウンロードし、CSVを元に申込情報をまとめたファイルを作成するという事を考えています。
それで、画像IDでしか保存してくれないプラグインの場合は、URLを別途取得しなくてはなりません。
そこでアクションフックを使ってURLをpost_metaに格納しましょうという事になりましたとさ。
*著者はプログラマでもなんでもないので、指摘があったらお願いします
画像URLを取得するアクションフックを作ろう
[code]function get_url($form_id, $post_id, $form_settings) {
$image_meta_name = get_post_meta($post_id, 'image_meta_name', false);
$imageurl = wp_get_attachment_url($image_meta_name[0]);
update_post_meta($post_id, 'imageURL' ,$imageurl);
}
add_action('getImageURL', 'get_url', 10, 2);
[/code]
最初に書いてしまいますがfunctions.phpに記載したアクションフックはこれ。
WP User Frontendでimage_meta_name(名前は任意です)という画像アップロード用のカスタムフィールドを作ります。
そして、hidden fieldとしてimageURLというカスタムフィールドを追加します。ここにURLを格納します。
アクションフックを追加して、そこに先ほど作ったgetImageURLを設定しましょう。
これで、フォームを投稿/更新した際にgetImageURLが呼ばれ、imageURLにURLが格納されます。
便利じゃないか…初めて使ったけども。