因此,使用来自客户现有网站的大量导入内容的新Wordpress主题,并且在他们的旧主题中,他们将多个图像附加到他们各自的投资组合页面。
这些图片共享相同的自定义字段名称:project_photo_photo
我遇到的问题是,在新主题中,我如何挽救导入的数据并利用现有的自定义字段名称,并为后期循环模板中的每个帖子显示多个项目图像?
下面的代码示例显示了我尝试显示此内容的时间,它只显示一个图像结果,添加相同代码块的倍数只会导致显示第一个图像的副本:
<?php if ( get_post_meta( get_the_ID(), 'project_photo_photo' ) ) : ?>
<div class="grid_gallery clearfix">
<div class="grid_gallery_inner">
<figure class="gallery_item featured-thumbnail thumbnail single-gallery-item">
<a href="/wp-content/files_mf/<?php echo get_post_meta( get_the_ID(), 'project_photo_photo', true ); ?>" class="image-wrap" rel="prettyPhoto[gallery]">
<img class="project_photo_photo" width="260" src="/wp-content/files_mf/<?php echo get_post_meta( get_the_ID(), 'project_photo_photo', true ); ?>" alt="<?php the_title(); ?>" />
<span class="zoom-icon"></span>
</a>
</figure>
</div>
<!--END .slider -->
</div>
<?php endif; ?>
我觉得我很接近,必须有一种优雅地做到这一点的方法。如果有人能帮助我,我会非常感激。
答案 0 :(得分:2)
如果同一自定义字段有多个条目,则在尝试
时会得到一个数组 get_post_meta( get_the_ID(), 'project_photo_photo' )
但如果您使用true
作为
get_post_meta( get_the_ID(), 'project_photo_photo', true )
。
您可以在此处获取更多信息:http://codex.wordpress.org/Function_Reference/get_post_meta
这就是你每次都获得单一结果的原因。
此外,您应该只查询一次meta字段。你已经查询了3次,这会花费数据库操作和时间。调用一次,保存在变量中并根据需要使用。
您将获得照片的一系列值。你需要循环才能得到它们。
我修改了您的代码,我希望我已将forloop
放置在适当的位置,如果没有,请放置在适当的位置。
<?php $project_photos = get_post_meta( get_the_ID(), 'project_photo_photo' );
if ( $project_photos ) : ?>
<div class="grid_gallery clearfix">
<?php foreach( $project_photos as $project_photo ) { ?>
<div class="grid_gallery_inner">
<figure class="gallery_item featured-thumbnail thumbnail single-gallery-item">
<a href="/wp-content/files_mf/<?php echo $project_photo; ?>" class="image-wrap" rel="prettyPhoto[gallery]">
<img class="project_photo_photo" width="260" src="/wp-content/files_mf/<?php echo $project_photo; ?>" alt="<?php the_title(); ?>" />
<span class="zoom-icon"></span>
</a>
</figure>
</div>
<?php } ?>
<!--END .slider -->
</div>
<?php endif; ?>