我正在研究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>» <a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h5>
<p><span class="the_date"><?php the_time('F j, Y'); ?></span>
<?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>» <a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h5>
<p><span class="the_date"><?php the_time('F j, Y'); ?></span>
<?php echo substr(strip_tags($post->post_content), 0, 200);?>...</p>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
</div>
我在循环后有几个其他自定义字段,所有字段都正确显示在页面上。 奇怪的是,我发现如果我在文件中更早地调用acf自定义字段'test',它会在页面上呈现...这听起来像是php嵌套/语法错误..?
如果有帮助,我可以发布整个代码。
提前致谢
答案 0 :(得分:0)
当您致电the_field()
时,如果没有提供帖子ID作为第二个参数,则使用global $post
。在您的示例中,您对WP_Query()
的调用会设置“循环”,因此如果调用the_field()
之前ACF不知道要返回值的帖子ID,那么它(可能)会使用该ID您正在查看的页面可能没有设置该元值。您需要传入要显示其值的帖子的ID,或者在循环中使用它。
the_field( 'field', $post_id );