2016-06-17 14 views
1

私はいくつかのカスタムフィールドを自分のイメージメタデータに追加し、元のメタデータフィールド(イメージ、キャプション、代替テキスト)を隠しました。だから私の新しいカスタムフィールドはタイトル、説明、寸法です。ACFフィールドが表示されません

ACFのようなだった前

マイテンプレート:ACFフィールドを追加した後、私はこれにタイトル、descと薄暗いフィールドを変更し

<?php if (is_single()) : ?> 
    <h1><?php the_title(); ?></h1> 
    <?php else : ?> 
    <h1> 
     <a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a> 
    </h1> 
    <?php endif; // is_single() ?> 

    <h3><?php ffm_artists(); ?></h3> 
    <h3><?php date_range(); ?></h3> 

    <?php if (has_post_thumbnail() && ! post_password_required()) : ?> 
    <div class="entry-thumbnail"> 
      <a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_post_thumbnail("large"); ?></a> 
    </div> 
    <?php endif; 

    the_content('Read more...'); 
    $images = get_field('images'); if($images): 
     foreach($images as $image): ?> 
     <figure> 
      <a href="<?php echo $image['url']; ?>"><img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" /></a> 
      <figcaption> 
       <?php if($image['title'] !== '') { echo $image['title'], '<br />'; }?> 
       <?php if($image['caption'] !== '') { echo $image['caption'], '<br />'; }?> 
       <?php if($image['description'] !== '') { echo $image['description']; }?> 
      </figcaption> 
     </figure> 
    <?php endforeach; ?> 
<?php endif; ?> 

foreach($images as $image): ?> 
<figure> 
<a href="<?php echo $image['url']; ?>"><img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" /></a> 
    <figcaption> 
     <p><?php the_field('title'); ?></p> 
     <p><?php the_field('description'); ?></p> 
     <p><?php the_field('dimensions'); ?></p> 
    </figcaption> 
</figure> 
<?php endforeach; ?> 
<?php endif; ?> 

今、私のコードだけで出力しています空白<p><\p>ここで、Title、Desc、およびDimsフィールドの中にテキストがあることがわかります。何かご意見は?

答えて

1

デフォルトでは、ACFファンクションthe_field()get_field()は現在の投稿から直接カスタムフィールドを返します。

タクソノミの用語やオプションのページなど、他の場所からフィールドを取得するためにそれらを使用するには、 - あなたのケースのメディア添付ファイルで、さらに引数を送信する必要があります。

This page in the ACF docsについて説明します。

追加の引数として、メディア添付ポストのIDを送信する必要があります。だから、あなたの文脈のためにこのようなものを見ているでしょう:

<p><?php the_field('title', $image['id']); ?></p> 
<p><?php the_field('description', $image['id']); ?></p> 
<p><?php the_field('dimensions', $image['id']); ?></p> 
+0

ありがとうございます。私はイメージのIDを知らないが、これらはループを経て実行される。正確なIDを指定せずに、ループ内のImageの現在のIDだけを呼び出す方法はありますか? – antonanton

+0

@antonantonループを実行するために 'get_field( 'images')'を使っていますよね? ACFがそれぞれのイメージオブジェクトを返すように設定されている限り、 'id'は' $ image ['id'] 'のようになるはずです。そうでなければ、ループの中で 'print_r($ image)'を実行するとどうなりますか? –

+0

ああ私は、まあまあうまくいっていることが分かる。ありがとうございました! – antonanton

関連する問題