【WordPress】カスタムフィールドテンプレートの画像表示エラー対処法

WordPressでカスタムフィールドテンプレートを使用しての複数画像表示の際のエラー対処法をシェアします。もしもっといい方法がある場合は教えていただけると幸いです。

※2016/11 追記
複数画像をカスタムフィールドを使用して投稿したい場合は、Custom Field Suiteの方が個人的には便利で簡単です。

症状

画像取得コード

投稿する際に任意の枚数の画像を取得したくカスタムフィールドテンプレートを使用していたのですが、画像は保存されているのに記事ページにでてこない。色々試したところ複数の際は表示できるけど、一枚のときだけ表示ができないという症状でした。

原因

タグのsrcに画像URLを表示する形を取っていたのですが、どうもforeachの中に入っていってないようだったので$productimgsをechoで確認してみると、

200

でした。あれ、「Array」じゃない。※普通配列をechoした場合は「Array」が返ってきます。

というかこれ画像IDじゃね?

ということで確認してみるとやはり画像IDでした。カスタムフィールドテンプレートで画像を任意の枚数取得する場合、複数でないと配列で返ってこないらしいです。どうりでforeachの中が実行されないはず。※foreachは配列のみ使用可能です。

対処法

受け取った値が配列かどうかを識別するis_array()を使用して、解決しました。

コードを簡単に解説するとis_array()で配列かどうか(複数or1枚)を判定し、1枚の場合は画像IDを返すのでそれを使用し画像を表示というコードです。

もともと複数写真を使用するつもりでのカスタムフィールドテンプレートを使用していたので、このエラーに気づきませんでした。もしかしたら同じようなエラーが出ている方は一度データの中身を確認してみたらいかがでしょうか。

もしこの記事がみなさんのためになったのなら、ぜひシェアをお願いします。やる気出るので。

よろしければシェアをお願いします。

Keisuke Yamashita

新卒CM制作会社でPM→カナダでWEBデザインを勉強→カナダでWEBデベロッパーとして就職→日本で事業会社でデザイナー デザインからフロントエンドを主に担当しています。休日はNetflixを見ながら過ごしています。

最新情報をお届け

De.からWEBデザインの最新情報を受け取りたい方は、下記のボタンでLIKEしてください。