2016-06-17 144 views
1

我添加了一些自定義字段到我的圖像元數據並隱藏了原始元數據字段(圖像,標題,替代文字)。所以我的新自定義字段是Title,Description,Dimensions。ACF字段沒有顯示

ACF之前我的模板是這樣:

<?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; ?> 

加入ACF領域後,我改變了標題,說明和昏暗的領域是:

現在
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>我知道標題,描述和調整字段中有文本。有什麼想法嗎?

回答

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,但這些都是通過循環運行的。有沒有一種方法可以在循環中調用Image的當前ID而不指定確切的ID? – antonanton

+0

@antonanton您正在使用'get_field('images')'來運行循環,對吧?只要ACF設置爲爲每個圖像對象返回一個圖像對象,就應該像'$ image ['id']''一樣獲取'id'。如果沒有,如果你在循環內運行'print_r($ image)'會發生什麼? –

+0

啊,我看到了,完全成功了。謝謝! – antonanton