サポート » プラグイン » archive-●の記事一覧でSmart Custom Field繰り返しがエラー

  • 以前
    https://ja.wordpress.org/support/topic/smart-custom-field%e3%81%ae%e7%b9%b0%e3%82%8a%e8%bf%94%e3%81%97%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e3%81%8ctaxonomy-%e2%97%8f-php%e3%81%a7%e5%8b%95%e3%81%8b%e3%81%aa%e3%81%84-2/
    こちらで似たような質問したことがあり解決したのですが、
    今回はarchive-●.phpで同様の事が起きてて分からないので質問させていただきます。

    カスタム投稿にタクソノミー(label_category)を設定し、複数のターム(term)を設定しています。
    archive-●.php上で、そのタクソノミーのタームのリストを生成のうえ、そのタームに属している記事を一覧で出したい、という動きを作ろうとしています。
    この記事にはSmart Custom Fieldsで作ったカスタムフィールド(単体のテキストフィールドと繰り返しのテキストフィールド)を設定しており、そのフィールドの内容をこの一覧の中に表示したいと考えてます。

    タイトル、パーマネントURL、CFの単体のテキストフィールドは表示できました。
    繰り返しのCFは、以前教えていただいた内容を踏まえて、

    $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'] );
    }

    ※タクソノミー名はscf_group、グループ名はproduct、テキストフィールドはscf_text

    これを踏まえ、以下のように記述したところ、phpのエラーが吐き出されました。

    <?php
    $taxonomy_name = 'label_category';
    $taxonomys = get_terms($taxonomy_name);
    if(!is_wp_error($taxonomys) && count($taxonomys)):
    foreach($taxonomys as $taxonomy):
    $tax_posts = get_posts(array('post_type' => get_post_type(), 'taxonomy' => $taxonomy_name,
    'term' => $taxonomy->slug ) );
    if($tax_posts):
    ?>
    //タクソノミー一覧を生成
    <div id="wrap">
    <h2><?php echo esc_html($taxonomy->name); ?>(<?php echo esc_html($taxonomy->slug); ?>)</h2>//タクソノミー名&スラッグ表示
    <ul>
    <?php
    foreach($tax_posts as $tax_post):
    ?>//タームの記事一覧を生成
    <li>
    <h3><a href="<?php echo get_permalink($tax_post->ID); ?>"><?php echo get_the_title($tax_post->ID); ?></a></h3>//カスタム投稿のタイトルとリンク
    <div class="text">[column_copy]→<?php echo nl2br(get_post_meta($tax_post->ID, 'cf_setsumei', true)); ?></div>//カスタム投稿に設定したカスタムフィールドのテキスト呼び出し
    
    <div class="tag_area">
    //▼カスタム投稿に設定したカスタムフィールドのグループ(テキストフィールド)の呼び出し
    <?php
    $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'] );
    }
    ?>
    //▲
    </div>
    </li>
    <?php endforeach; ?>
    </ul>
    </div>
    <?php endif; endforeach; endif; ?>

    エラーは
    foreach ($scf_group as $fields ) {
    の行に
    Warning: Invalid argument supplied for foreach() in ~
    と出ています。

    ネットで調べてみて、
    foreach ((array)$scf_group as $fields ) {
    としてみたら、エラーは消えましたが、何も表示されません。

    なお、前回でも動かなかった

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

    をテストで書いてみたところ、一つ目の記事のグループがすべての記事に入った状態で出てきました。

    こちら、 foreach ($scf_group as $fields ) { の部分をどのように書けば解消するのでしょうか。
    ご教授のほどよろしくお願いいたします。

  • トピック「archive-●の記事一覧でSmart Custom Field繰り返しがエラー」には新たに返信することはできません。