当我试图在同一个页面上显示不同的自定义帖子和高级自定义字段时,我很难理解PHP在做什么。
我已经添加了不同的高级自定义字段到一个页面,我有自定义的文章,我试图使用模板显示。
我在整个模板中调用我的自定义字段,使用:
<?php the_field(‘field-name’) ?>我的自定义帖子是通过这样的循环调用的(在模板中间的某个地方):
<?php
$args = array(
'post_type' => ‘foo’
);
$foo = new WP_Query( $args );
if( $foo->have_posts() ) {
while( $foo->have_posts() ) {
$foo->the_post();
?>
<?php the_content() ?>
<?php
}
}
else {
// SOME MESSAGE
}
?>高级自定义字段的内容显示得很好,在这些循环之上。在循环下面,它就是不显示。
我不明白为什么内容没有出现。
我假设它与循环的while或if语句有关。如果删除循环,下面任何高级自定义字段的内容都会显示。
发布于 2016-03-15 19:23:06
使用WP_Query()时,每次遍历post时都会更改页面上的默认$post变量。您需要在循环之后调用wp_reset_postdata()来重置该$post变量,以便它再次对应于当前页面。你可以在你的“时间”循环之后调用这个函数-
<?php
$args = array(
'post_type' => ‘foo’
);
$foo = new WP_Query( $args );
if( $foo->have_posts() ) {
while( $foo->have_posts() ) { $foo->the_post();
the_content();
} wp_reset_postdata();
}
else {
// SOME MESSAGE
}
?>https://stackoverflow.com/questions/36018434
复制相似问题