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

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

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

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

Q&A

解決済

2回答

5641閲覧

wordpressプラグインのSmart Custom Fieldsについて

cova

総合スコア20

PHP

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

0グッド

0クリップ

投稿2016/05/08 23:44

編集2016/05/09 02:44

wordpressプラグインの「Custom Post Type UI」と一緒に
「Smart Custom Fields」を使用し「繰り返し(グループ)機能」で
出力先を「index.php」に反映させたかったのですが、
特にエラーもなく何も表示されませんでした。

下記のコードのミスなのか、それとも
wordpressのパラメータタグが必要なのでしょうか。

どなたか教えていただけると助かります。

Smart Custom Fieldsの管理画面は
カスタムフィールドのグループ名が「foodmain」
サブフィールド
・リストタイプ「テキスト」
・名前「mainname」
・ラベル「商品」

サブフィールド
・タイプ「テキスト」
・名前「mainprice」
・ラベル「値段」

Custom Post Type UIの管理画面は
・Post Type Slug 「main」
・Plural Label 「メイン」
・Singular Label 「メイン」

<?php $group_set = SCF::get( 'foodmain' ); foreach ( $group_set as $field_name => $field_value ) { ?> <?php echo esc_html( $field_value['mainname'] ); ?> <?php echo esc_html( $field_value['mainprice'] ); ?> <?php }

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

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

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

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

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

kei344

2016/05/09 01:45 編集

「うまくできない」とは「何をしたときに」「どうなると思って」「どうなったのか」をお書きください。また、コードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「</>」ボタンを押すとコードブロックになります。
guest

回答2

0

Custom Post Type UIの表示方法を
記述していなかったのがそもそもの原因でした。

下記のコードを記述することにより
解決いたしました。

php

1 <?php $loop = new WP_Query(array("post_type" => "main", "posts_per_page" => 50 )); 2 while($loop->have_posts()): $loop->the_post(); ?> 3 <div id=”post-<?php the_ID(); ?> <?php post_class(); ?>> 4

投稿2016/05/12 09:54

cova

総合スコア20

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

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

0

ベストアンサー

こちらの書き方で出力されませんか?表示されないようでしたらコメントアウトしてある var_dump で中身を確認してみてください。

PHP

1$group_set = SCF::get( 'foodmain' ); 2// var_dump( $group_set ); 3foreach ( $group_set as $fields ) { 4 // var_dump( $fields ); 5 echo esc_html( $fields[ 'mainname' ] ); 6 echo esc_html( $fields[ 'mainprice' ] ); 7}

また、エラーは非表示になっていることがあり、下記のようにして表示させることができます。

PHP

1<?php 2//エラー出力強制 3ini_set( 'display_errors', 1 ); // エラーを画面に表示(1を0にすると画面上にはエラーは出ない) 4//すべてのエラー表示 5error_reporting( E_ALL );

追記:

【【WordPress】クリック1つでカスタムフィールドのグループを増やせるSmart Custom Fieldsの繰り返し機能がすごく便利 | ホームページ制作 SEO対策 福岡のアイドットデザイン】
http://idotdesign.net/blog/web/wordpress/smart-custom-fields/

【WordPressプラグイン「Smart Custom Fields」|大阪のホームページ制作・WEB制作会社I.M.D】
https://www.imd-net.com/blog/2014/12/15-210937/

投稿2016/05/09 04:20

編集2016/05/11 02:11
kei344

総合スコア69400

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

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

cova

2016/05/09 11:16 編集

ありがとうございます。 教えていただいた通りにしたところ、 Warning: Invalid argument supplied for foreach() in /ファイルのパス/ が 表示され。これについて調べたところ foreach ((array) $group_set as $fields ) { にすれば、治ると記載されてたので、そのとおりにしたのですが、 エラーは表示されなくなりましたが、何も表示されませんでした。 新たにカテゴリーを作った方がよろしいでしょうか。 「Smart Custom Fields」以外に「Advanced Custom Fields PRO」と 「Custom Field Suite」のプラグインを入れているのが原因でしょうか。 今は無効化にしてあります。 ご報告は以上となります。
kei344

2016/05/09 11:36

var_dump( $group_set ); の結果はどうなりましたか?多分データは入っていない気がします。「Invalid argument supplied for foreach」は「配列が入っていないんですけど」ということかと思います。SCF::get() が正しく動くかどうか、グループ化していない項目で入力が反映されるか確認してみてください。
cova

2016/05/11 00:29

大変申し訳ございません。 この「teratail」の使い方がわからず 返信が遅れました。 var_dump( $group_set ); の結果回答ですが、 「NULL 」と表示されました。 グループ化していない項目での反映されるか 試してみましたが、表示されませんでした。(エラー表示もありません。) kei344 さんがおしゃるとおり SCF::get()が動いてなさそうです。 ちなみに、「グループ化していない項目」の やり方は下記のようにやりました。 カスタムフィールドで「フィールド追加」を押し 新しい「フィールド」を作り タイプ 「テキスト」 名前 「category」 ラベル 「カテゴリー」 コードは下記のとおりです。 <?php $product_id = SCF::get( 'category' ); echo esc_html( $product_id ); ?> 以上となります。
kei344

2016/05/11 02:10

> カスタムフィールドで「フィールド追加」を押し それはWordPress標準のカスタムフィールドの追加方法です。 【wordpressカスタムフィールドの設定手順(表示・取得)と、プラグイン:「カスタムフィールドテンプレート」の使い方】 http://viral-community.com/wordpress/wordpress-custom-field-5309/ スクリーンショットつきの記事2つを追記しますので、そもそもの使い方を確認してください。
cova

2016/05/12 09:56

kei344 さん 長々と質疑応答に付き合って いただきましてありがとうございます。 今一度、最初から手順を追っていくことにより 抜けていた箇所があり、それを追加修正いたしましたら 自己解決にいたりました。 改めて御礼申し上げます。 今後ともよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問