サポート » プラグイン » Smart Custom Fieldの繰り返しフィールドがtaxonomy-●.phpで動かない

  • 解決済 takaraism

    (@takaraism)


    カスタム投稿のタクソノミーに、Smart custom field(SCF)で作った繰り返し機能を持つカスタムフィールドを設置し、その内容を呼び出したいと考えています。

    カスタム投稿は
    ・カスタム投稿スラッグ・・・product
    ・タクソノミー・・・info
    ・ターム・・・term01、term02(以後数個)
    で設定。
    この情報を呼び出すために、
    taxonomy-procate.phpというファイルを作って
    動かすようにしています。
    term01を呼び出したら
    http://test.com/product/info/term01/
    で表示されます。

    SCFでは、繰り返しのスイッチを入れて、
    ・グループ名・・・scf_group
     ・テキストフィールド・・・scf_text
     ・テキストエリア・・・scf_textarea
    を設定。
    この内容を、タクソノミーprocateに表示するようにしています。
    ※ほかにも繰り返しのスイッチを入れてないノーマルのカスタムフィールド
     ・製品名・・・product_subtitle
     等、複数個のカスタムフィールドを作っています。

    その上で、
    https://qiita.com/chokosuki4400/items/cfd14c3c3caf2a13a34c
    https://www.i-ryo.com/entry/2018/12/05/210617
    こちらで紹介されている呼び出しを行っているのですが、
    上手く呼び出すことができません。

    taxonomy-procate.phpでは
    タームの情報を呼び出すために、

    <?php
    $term_idonly = get_queried_object_id();
    	$args = Array(
    	'include'=> $term_idonly,
    	);
    $terms = get_terms('info',$args);
    foreach ( $terms as $term ) :
    ?>
    <?php
    $term_id = $term;
    $taxonomy = 'info';
    ?>
    
    <p>
    ▼タームタイトル<br>
    <?php echo esc_html( $term->name ); ?>
    </p>
    
    <p>
    ▼カスタムフィールド「製品名」<br>
    <?php echo esc_html( SCF::get_term_meta( $term_id, $taxonomy, 'product_subtitle' ) );?>
    </p>
    
    <?php endforeach; ?>

    という形で呼び出しています。
    おそらく回りくどい書き方で、どこか間違えている気がしますが、
    http://test.com/product/info/term01/
    を叩くと、タームタイトルと、製品名が呼び出されています。

    この中に、先のサイトで紹介されているグループの呼び出しのソースを
    <?php endforeach; ?>の直前に配置したのですが

    <?php
    $cf_group = SCF::get('scf_group');
    foreach ($cf_group as $field_name => $field_value ) {
        echo $field_value['scf_text'];
    }
    ?>

    呼び出されません。
    色々調べてみて

    <?php $repeat_group = SCF::get( 'scf_group' );
    foreach ( $repeat_group as $fields ) { ?>
    <?php echo esc_html( $fields['scf_text'] ); ?>
    <?php } ?>

    こちらも試しましたがダメでした。

    開発者の方の
    https://2inc.org/blog/2015/04/30/4790/
    こちらの内容で

    <?php
    // 取得したいタームのID
    $term_id = '1';
    
    // 取得したいタクソノミーの種類 category | post_tag | カスタムタクソノミー
    $taxonomy = 'info';
     
    // 'カスタムフィールド名' のデータを表示
    echo esc_html( SCF::get_term_meta( $term_id, $taxonomy, 'scf_text' ) );
    
    ?>

    と入れてみたら、Arrayが返ってきます。

    ただ

    <?php
    // 取得したいタームのID
    $term_id = '9';
     
    // 取得したいタクソノミーの種類 category | post_tag | カスタムタクソノミー
    $taxonomy = 'info';
    
    // 全てのメタデータを表示
    var_dump( SCF::get_term_meta( $term_id, $taxonomy ) );
    ?>

    にすると、入っている項目がすべて見れますので、SCFで設定した内容については格納されており、問題ないと思われます。

    どのようにしたら、タームに設置した繰り返しカスタムフィールドの内容を呼び出すことができるのでしょうか。ご教授頂けたら幸いです。

    何卒よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    カスタム投稿は
    ・カスタム投稿スラッグ・・・product
    ・タクソノミー・・・info
    ・ターム・・・term01、term02(以後数個)

    と、ありますが、説明から判断するとタクソノミーは product でしょうか?

    タクソノミーが product の場合は、下記のようなコードで繰り返しフィールドの値を取得することができると思います。

    $term_id = get_queried_object_id();
    $scf_group = SCF::get_term_meta( $term_id, 'product', 'scf_group' );
    foreach ( $scf_group as $fields ) {
    	echo esc_html( $fields['scf_text'] );
    }
    • この返信は7ヶ月、 1週前にishitakaが編集しました。

    >ishitakaさん
    お返事が遅くなりました。
    ご教授ありがとうございます。
    こちら試したところ、動くのを確認できました。

    こちらをベースにこねくり回していろいろ対応させていただきました。
    大変助かりました!
    呼び出し方で、カスタムフィールド呼び出し方も変わるのは勉強になりました(汗

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「Smart Custom Fieldの繰り返しフィールドがtaxonomy-●.phpで動かない」には新たに返信することはできません。