サポート » 使い方全般 » 固定ページ、親ページに子ページのAdvanced Custom Fieldsの内容を表示

  • 解決済 sa-yama

    (@sa-yama)


    一度締め切り、解決済みとしたトピックをまとめ直し、改めて質問させて頂きます。
    前回の流れはこちらから固定ページ、親ページに子ページの投稿内容を表示ご確認頂ければ幸いです。

    やりたいこと
    店舗情報のページを作成の場合、
    子ページ→各店舗詳細(ACFのフィールド含む)
    親ページ→店舗一覧 と作成し、親ページから子ページのACFフィールドの内容を表示したい

    前提
    投稿の親子関係の指定には、ACFのRelationshopやPost Objectを使用せず、WordPressの標準機能を使っている

    構成イメージ
    店舗一覧——————-ココに各店舗詳細1〜4全て表示
     ├各店舗詳細1
     ├各店舗詳細2
     ├各店舗詳細3
     ├各店舗詳細4

    以上を踏まえて、こちらを参考にソースを下記の通り記述致しました。

    <?php
    if ( $post->post_parent == 0 ) {
    	$child_posts = get_posts( 'numberposts=-1&order=ASC&orderby=post_title&post_type=page&post_parent=' . $post->ID );
    	if ( $child_posts ) {
    		foreach ( $child_posts as $child ) {
    			$c_title = apply_filters( 'the_title', $child->post_title );
    			$c_content = get_extended( $child->post_content );
    			$c_text = get_post_meta( $child->ID,text, true);
    	                $c_tel = get_post_meta( $child->ID,tel, true);
    			$c_access = get_post_meta( $child->ID,access, true);
    			$c_image = get_post_meta($child->ID,image, true);
    ?>
    
    	<div class="se">
    		<h3><?php echo $c_title; ?></h3>
        <?php echo $c_text; ?>
        <?php echo $c_tel; ?>
        <?php echo $c_access; ?>
      <img src="<?php echo $c_image['url']; ?>" alt="<?php echo $c_image['alt']; ?>" />
    	</div>
    <?php
    		}
    	}
    }
    ?>

    現状、画像の$c_image以外は希望の通り表示されています。
    画像を表示させる方法をアドバイスいただけないでしょうか。
    よろしくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター Takuro Hishikawa

    (@hissy)

    ACFの画像フィールドを使っている場合は、こうです

    <?php $c_image = get_field( 'image', $child->ID ); ?>
    <img src="<?php echo $c_image['url']; ?>" alt="<?php echo $c_image['alt']; ?>" />

    ただし、返り値をオブジェクトにしている必要があります。ドキュメントはこちら:
    http://www.advancedcustomfields.com/resources/field-types/image/

    トピック投稿者 sa-yama

    (@sa-yama)

    Takuro Hishikawaさま

    ありがとうございます!
    無事に実装することができました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「固定ページ、親ページに子ページのAdvanced Custom Fieldsの内容を表示」には新たに返信することはできません。