显示高级自定义字段的内容
Displaying content of Advanced Custom Fields
当我尝试在同一页面上显示不同的自定义帖子和高级自定义字段时,我无法理解(我的)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 语句有关。如果我删除循环,下面任何高级自定义字段的内容都会显示。
当您使用 WP_Query()
时,每次循环 post 时都会更改页面上的默认 $post
变量。您需要在循环后调用 wp_reset_postdata()
来重置 $post
变量,使其再次对应于当前页面。您可以在 'while' 循环后调用该函数 -
<?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
}
?>
当我尝试在同一页面上显示不同的自定义帖子和高级自定义字段时,我无法理解(我的)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 语句有关。如果我删除循环,下面任何高级自定义字段的内容都会显示。
当您使用 WP_Query()
时,每次循环 post 时都会更改页面上的默认 $post
变量。您需要在循环后调用 wp_reset_postdata()
来重置 $post
变量,使其再次对应于当前页面。您可以在 'while' 循环后调用该函数 -
<?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
}
?>