前提・実現したいこと
前提
BASEにて登録した商品情報をWordPressで表示しようと実装をしております。
WordPressでは、「BASE 商品リスト」というプラグインを使用してBASEとの連携は完了いたしました。
実装において、商品名や画像、商品タイトルは表示されたのですが、カテゴリーがうまく表示されず困っております。
なお、BASEではカテゴリー表示をさせるために、Appsの「カテゴリ管理」を入れており、商品にはそれぞれカテゴリーを登録しております。
BASE上ではうまく表示できております。
実現したいこと
- BASEにて登録した商品のカテゴリーをWordPressで表示したい。
発生している問題・エラーメッセージ
Warning: Invalid argument supplied for foreach() in (テーマファイル)/base_items.php on line 〇〇
該当のソースコード
PHP
1<?php 2 if ( ! defined( 'ABSPATH' ) ) exit; 3 global $base_items; 4 /* 5 * item 6 * item_id int 7 * title string 8 * detail string 9 * price int 10 * stock int 11 * **img(n) is 1 to 5** 12 * img(n)_origin string 13 * img(n)_76 string 14 * img(n)_146 string 15 * img(n)_300 string 16 * img(n)_500 string 17 * img(n)_640 string 18 * img(n)_sp_480 string 19 * img(n)_sp_640 string 20 * modified int 21 * shop_id string 22 * shop_name string 23 * shop_url string 24 * categories array (string,string...) 25 */ 26?> 27<?php if ( isset( $base_items ) ) : ?> 28 <section class="posts items"> 29 <?php foreach ( $base_items as $item ) : ?> 30 <article class="post item"> 31 <figure class="image"> 32 <a href="<?php echo esc_url( $item->shop_url) ?>/items/<?php echo $item->item_id; ?>"><img src="<?php echo esc_url( $item->img1_300 ); ?>" alt="<?php esc_attr( $item->title ); ?>"></a> 33 </figure> 34 <div class="text"> 35 <h3 class="headline"> 36 <a href="<?php echo esc_url( $item->shop_url) ?>/items/<?php echo $item->item_id; ?>" class="title"><?php echo esc_html( $item->title ); ?></a> 37 </h3> 38 <?php 39 foreach($item->categories as $category){ 40 ?> 41 <p class="category"><?php echo $category; ?></p> 42 <?php } ?> 43 <p class="price"><?php echo number_format(esc_html( $item->price )); ?></p> 44 </div> 45 </article> 46 <?php endforeach; ?> 47 </section> 48 49 <footer class="footer"> 50 <p class="btns"><a href="<?php echo esc_url( $item->shop_url) ?>" class="btn more"><span>ONLINE SHOP</span></a></p> 51 </footer> 52 53<?php endif;
試したこと
- 下記の記事を参考にし、コードを編集した。
- WordPressとBASEを連携させるためのプラグイン「BASE Item List」のテンプレート機能の使い方 - base_items.php|GitHub
https://gist.github.com/mt8/5fa06848826ac44acfce25cb8418d048
- WordPressプラグイン「BASE Item List」でカテゴリーを表示する方法|triana blog
https://blog.triana.jp/?p=12588
- 他、思いつく限りコードを編集してみた。
→ ダメ元で38行目に「$categories = get_categories($args);」を入れて、39行目の「$item->」を削除してみたが、WordPress側で登録されているカテゴリーを全件取得しただけだった。
→ 39行目のcategoriesを「categories(array)」にすると、テーマファイルエディターではエラーになり更新ができなくなる。
※ エラー内容は下記の通りです。
syntax error, unexpected '(array)' (array) (T_ARRAY_CAST)
→ 41行目の「$category」を「$category->name」に編集しても値は取れなかった。
補足情報(FW/ツールのバージョンなど)
「発生している問題・エラーメッセージ」に記載されているエラー分から、foreachに渡されている引数が間違っていることは理解できます。
ですが、BASE側で登録しているカテゴリーをどのように引数として渡せばよいかというところがわからない状態です。
ご教授いただけますと幸いです。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー