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を取得するアクションフックを作ろう

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);

最初に書いてしまいますがfunctions.phpに記載したアクションフックはこれ。

WP User Frontendでimage_meta_name(名前は任意です)という画像アップロード用のカスタムフィールドを作ります。

[peg-image src="http://lh3.googleusercontent.com/-vdZLhBKIXqA/VkvVKhDNniI/AAAAAAACM2I/ewbhf7VVHj0/s144-o/imaname.jpg" href="https://picasaweb.google.com/117388002231020458927/20151117?authkey=XyHobB7By6o#6218298087162355234" caption="imaname.jpg" type="image" alt="imaname.jpg" image_size="706x568" ]

そして、hidden fieldとしてimageURLというカスタムフィールドを追加します。ここにURLを格納します。

[peg-image src="http://lh3.googleusercontent.com/-UbPME8RnGAo/VkvVTt8SQkI/AAAAAAACM2M/xJgJkrY9frI/s144-o/hidden.jpg" href="https://picasaweb.google.com/117388002231020458927/20151117?authkey=XyHobB7By6o#6218298245241782850" caption="hidden.jpg" type="image" alt="hidden.jpg" image_size="772x264" ]

アクションフックを追加して、そこに先ほど作ったgetImageURLを設定しましょう。

[peg-image src="http://lh3.googleusercontent.com/-OSJxalYT9LQ/VkvVWUiRXAI/AAAAAAACM2U/km8P1HSAEhY/s144-o/hook.jpg" href="https://picasaweb.google.com/117388002231020458927/20151117?authkey=XyHobB7By6o#6218298289961393154" caption="hook.jpg" type="image" alt="hook.jpg" image_size="824x272" ]

これで、フォームを投稿/更新した際にgetImageURLが呼ばれ、imageURLにURLが格納されます。

便利じゃないか…初めて使ったけども。

オススメNginx本

nginx実践入門 (WEB+DB PRESS plus) 単行本(ソフトカバー) – 2016/1/16

nginxを現場で活用するための知識を、実践的なノウハウを交えて解説した書籍です。nginxのインストール方法や基本的な設定方法からはじめ、nginxを利用した「静的コンテンツ配信サーバ」「HTTPSサーバ」「Webアプリケーションサーバ」「大規模コンテンツ配信システム」の構築方法をそれぞれ詳しく紹介しています。後半ではnginxサーバのモニタリングやログの収集、そして軽量スクリプト言語Luaでnginxを拡張する方法について解説しているので、nginxをこれから使う方はもちろん、さらに活用したい方にもお勧めです。

 - Wordpress