【发布时间】:2015-01-09 15:32:30
【问题描述】:
我在使用 Wordpress 中的高级自定义字段的关系循环时遇到问题。
第一个帖子显示完美,但它应该再执行一个帖子,但事实并非如此。
谁能看到我的代码有什么问题?
<?php $posts = get_field('produkter'); if( $posts ): ?>
<?php foreach( $posts as $post): ?>
<?php setup_postdata($post); ?>
<div class="produkt">
<?php the_title(); ?>
<?php the_content(); ?>
<?php $posts = get_field('fil'); if( $posts ): ?>
<div id="filer">
<div id="topsection" class="laddahem"><div class="topborder"></div>
<h2>Ladda hem</h2>
</div><!-- #top -->
<div class="filhuvud">
<div class="filtyp">Filtyp</div>
<div class="fildatum">Datum</div>
<div class="filstorlek">Filstorlek</div>
</div><!-- .filhuvud -->
<div class="filholder">
<?php foreach( $posts as $post): ?>
<?php setup_postdata($post); ?>
<?php $attachment_id = get_field('filen');
$url = wp_get_attachment_url( $attachment_id );
$title = get_the_title( $attachment_id );
// hämta filstorleken
$filesize = filesize( get_attached_file( $attachment_id ) );
$filesize = size_format($filesize, 1);
$filetype = strtolower(pathinfo($url, PATHINFO_EXTENSION)); ?>
<div class="fil <?php echo $filetype; ?>">
<div class="filtyp"><a target="_blank" href="<?php echo $url; ?>" ><?php the_title(); ?></a></div>
<div class="fildatum"><?php the_time('Y-m-d'); ?></div>
<div class="filstorlek"><?php echo $filesize; ?></div>
</div><!-- .fil -->
<?php endforeach; ?>
<?php wp_reset_postdata(); ?>
</div><!-- .filholder -->
</div><!-- #filer -->
<?php endif; ?>
</div><!-- .produkt -->
<?php endforeach; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
【问题讨论】:
-
就在你打电话给
get_field('fil')之前,做一个wp_reset_postdata -
@Anand,不幸的是,这根本没有帮助。
-
在调用
get_field('fil')之后,执行var_dump($posts)并查看它是否包含所需的数据。 -
@Anand,它输出了大量的数据...
-
在同一数据中尝试检查您希望看到的帖子是否存在。
标签: php wordpress foreach advanced-custom-fields