ACF字段未显示

时间:2016-06-17 20:02:18

标签: wordpress image advanced-custom-fields

我在图片元数据中添加了一些自定义字段,并隐藏了原始元数据字段(图片,标题,替代文字)。所以我的新自定义字段是Title,Description,Dimensions。

我在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字段后,我将标题,desc和dim字段更改为:

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 个答案:

答案 0 :(得分: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>