我在Acf Pro中的repeater字段有问题。基本上,它在管理中工作正常(它保存数据),但前面什么都没有显示。这让我抓狂,因为我在另一个网站上使用了完全相同的代码片段,相同的WP版本,相同的ACF版本,而且它还在工作,但对于我目前正在开发的网站,我在本地和生产中都遇到了这个问题。
中继器字段的名称为logo\\u grid它内部有一个名为logo\\u grid\\u img的图像字段(URL类型
这是我的代码:
<?php if( have_rows(\'logo_grid_logos\') ): ?>
<?php while( have_rows(\'logo_grid_logos\') ): the_row(); ?>
<img src="<?php echo get_sub_field(\'logo_grid_img\'); ?>">
<?php endwhile; ?>
<?php endif; ?>
我尝试了var\\u dump,但它只返回null。
<?php $my_var_dump = get_field(\'logo_grid_logos\'); ?>
<?php var_dump($my_var_dump); ?>
我非常绝望。有人有什么线索吗?
SO网友:mvicidomini
我刚刚解决了这个问题,多亏了Facebook上的先锋Wordpress小组(https://www.facebook.com/groups/advancedwp/). 这实际上是我犯的一个错误:我在自定义字段之前有一个查询,必须重置它。以下是工作片段:
<?php
// WP_Query arguments
$args = array (
\'post_type\' => \'post\',
\'posts_per_page\' => \'4\',
);
// The Query
$query = new WP_Query( $args );
// The Loop
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
the_title();
}
} else {
echo \'No posts found\';
}
// Restore original Post Data: this line was missing in my original code; adding it solved the issue.
wp_reset_postdata();
?>
<?php if( have_rows(\'logo_grid_logos\') ): ?>
<?php while( have_rows(\'logo_grid_logos\') ): the_row(); ?>
<img src="<?php echo get_sub_field(\'logo_grid_img\'); ?>">
<?php endwhile; ?>
<?php endif; ?>
我最初的查询稍微复杂一些,但这是一个可行的示例。谢谢