質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

623閲覧

ECサイト「BASE」にて登録したカテゴリーをWordPressに表示させたい

teraquina

総合スコア2

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2023/01/07 02:59

前提・実現したいこと

前提

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;

試したこと

  1. 下記の記事を参考にし、コードを編集した。
  • 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

  1. 他、思いつく限りコードを編集してみた。

→ ダメ元で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側で登録しているカテゴリーをどのように引数として渡せばよいかというところがわからない状態です。

ご教授いただけますと幸いです。
どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tabuu

2023/01/10 00:52

$item->categories は配列になっていますか?
teraquina

2023/02/04 05:39

ご連絡が大変遅くなり申し訳ございません。 こちらの件につきまして、仕様が大幅に変更になりBASEを使わない方向になりました。 気にかけて下さり、ありがとうございました。
guest

回答1

0

自己解決

こちらの件、仕様が大幅に変わりBASEを使わない方向になりました。
ご回答いただいた方、気にかけてくださった皆様、ありがとうございました。

投稿2023/02/04 05:38

teraquina

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問