为什么我的acf自定义字段出现在某个地方?

时间:2014-07-16 00:07:33

标签: wordpress advanced-custom-fields

我正在研究wordpress主题,并且我添加了一个自定义WP_query循环。循环本身工作正常,没有错误。 我也使用了一些高级自定义字段,但由于我无法理解的原因,当我尝试在自定义查询循环之前打印自定义字段时,没有任何内容返回到页面但是如果我打印自定义在循环之后的字段,看起来很好。

以下作品('test'将其值返回到页面,如果我在循环之后将其称为):

<div class="section blog-summaries">
<?php $the_blog_posts = new WP_Query( 'showposts=5' ); ?>
<?php while ($the_blog_posts -> have_posts()) : $the_blog_posts -> the_post(); ?>
<h5>&raquo; <a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h5>
<p><span class="the_date"><?php the_time('F j, Y'); ?></span>&nbsp;&nbsp;
<?php echo substr(strip_tags($post->post_content), 0, 200);?>...</p>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
<h3 class="title1"><?php the_field("test"); ?><span class="title-end"></span></h3>
</div>

...如果我尝试在自定义循环之前打印自定义字段'test'的值,则不会向页面返回任何值:

<div class="section blog-summaries">
<h3 class="title1"><?php the_field("test"); ?><span class="title-end"></span></h3>
<?php $the_blog_posts = new WP_Query( 'showposts=5' ); ?>
<?php while ($the_blog_posts -> have_posts()) : $the_blog_posts -> the_post(); ?>
<h5>&raquo; <a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h5>
<p><span class="the_date"><?php the_time('F j, Y'); ?></span>&nbsp;&nbsp;
<?php echo substr(strip_tags($post->post_content), 0, 200);?>...</p>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
</div>

我在循环后有几个其他自定义字段,所有字段都正确显示在页面上。 奇怪的是,我发现如果我在文件中更早地调用acf自定义字段'test',它会在页面上呈现...这听起来像是php嵌套/语法错误..?

如果有帮助,我可以发布整个代码。

提前致谢

1 个答案:

答案 0 :(得分:0)

当您致电the_field()时,如果没有提供帖子ID作为第二个参数,则使用global $post。在您的示例中,您对WP_Query()的调用会设置“循环”,因此如果调用the_field()之前ACF不知道要返回值的帖子ID,那么它(可能)会使用该ID您正在查看的页面可能没有设置该元值。您需要传入要显示其值的帖子的ID,或者在循环中使用它。

the_field( 'field', $post_id );