サポート » 使い方全般 » Advanced custom fieldsの投稿オブジェクトについて

  • 解決済 mkon03

    (@mkon03)


    single.phpにてAdvanced custom fieldsの投稿オブジェクトを利用しておりまして、
    タイトルやディスクリプションなどを取得することは出来たのですが、
    カスタムフィールドを上手く取得することが出来ません。

    カスタムフィールドを取得使用とすると、
    もともと設定しているsingle.phpのカスタムフィールドが取得されてしまいます。
    こちらの方法をわかる方がいれば教えていただきたいです。

    
    <?php $acf_post_objects = get_field('pickup'); if( $acf_post_objects ): ?>
    <ul>
    <?php foreach( $acf_post_objects as $acf_post_object): //ループの開始 ?>
      <li class="recommend_frame">
    <a href="<?php echo get_permalink($acf_post_object->ID); ?>"><?php echo get_the_title($acf_post_object->ID); ?></a>
    
    <?php $img = get_field('img', $object->ID);
    $imgurl = wp_get_attachment_image_src($img, 'full');
    if($img): ?>
    <img src="<?php echo $imgurl[0]; ?>" alt="<?php the_title(); ?>" class="";>
    <?php endif; ?>
    
    <div class="recommend_excerpt"><?php echo mb_substr(strip_tags($post-> post_content),0,50) ; ?></div>
    <div class="recommend_bt"><a href="<?php echo $object->guid; ?>" target="_blank">続きを読む</a></div>
      </li>
    <?php endforeach; // ループの終了 ?>
    </ul>
    <?php endif;?>
    
    

    上手く伝えられずすみませんが何卒宜しくお願い致します。

    • このトピックは mkon03が2 年、 4 ヶ月前に変更しました。
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • 7行目や14行目の $object のせいではないでしょうか。
    この変数はお示しいただいたコードの範囲内では未定義ですので、 null か何かとして扱われているのではないでしょうか。
    $acf_post_object の間違いではないですか?

    さらに言えば、ループ内のコードはどこかからのコピペでしょうか。
    10行目の the_title() や、13行目の $post も、おそらく意図したものが取得できていないと思われます。
    まず、10行目の the_title(); は、エスケープが必要ですので以下のように変更してください。

    echo esc_attr(strip_tags(get_the_title($acf_post_object)));

    13行目の $post$acf_post_object でしょうか。

    • この返信は2 年、 4 ヶ月前に  LABE さんが編集しました。

    LABE様

    ご連絡が遅くなってしまいすみません。

    ご指摘いただいた点を修正したところ、
    しっかりと指定記事のカスタムフィールドを取得することができました。

    ありがとうございます!大変感謝をしております。
    また何かありましたらご相談をさせていただきます。

    それからご指摘の通りコード部分はコピペしてきたものを編集して作業をしておりました。
    今後は自分でも書けるように精進いたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「Advanced custom fieldsの投稿オブジェクトについて」には新たに返信することはできません。