Wordpressのカスタマイザで画像IDを保存する方法
概要
Wordpressのカスタマイザで画像を選択させる時に使うWP_Customize_Image_Controlクラスを使っている方は多いと思います。しかし、テーマの設計上でサイズの小さい画像やサムネイルも欲しい時、WP_Customize_Image_Controlクラスだと画像のURLになってしまうので少し面倒です。一般的に良くある解決法は画像URLからAttachmentID(以降、単に「ID」と呼ぶ)を取得するattachment_url_to_postid関数を使っています。でもこのattachment_url_to_postid関数は実行するたびにSQLクエリを飛ばすので頻繁には使いたくないですね。取得したIDからwp_get_attachment_image_urlなどの関数でもデータベースにアクセスするので無駄が多いです。そこではじめからIDを使うことが決まっている場合にカスタマイザでIDが保存される方法をまとめます。