我正试图掌握foreach循环的艺术;我有下面的代码,用于WordPress和高级自定义字段插件。我想把它变成一个前轮。
<li data-thumb="<?php the_field('image_1'); ?>">
<img src="<?php the_field('image_1'); ?>" />
</li>
<li data-thumb="<?php the_field('image_2'); ?>">
<img src="<?php the_field('image_2'); ?>" />
</li>
<li data-thumb="<?php the_field('image_3'); ?>">
<img src="<?php the_field('image_3'); ?>" />
</li>
<li data-thumb="<?php the_field('image_4'); ?>">
<img src="<?php the_field('image_4'); ?>" />
</li>
<li data-thumb="<?php the_field('image_5'); ?>">
<img src="<?php the_field('image_5'); ?>" />
</li> 我已经尝试过编写下面的代码,但是它不起作用,我也不知道如何将循环限制为5(图像)。注意,get_field返回图像url,而the_field返回图像。
<?php
$i=1;
foreach (!empty (get_field('property_image.$i.')) ) {
print (' <li data-thumb="<?php the_field('property_image'.$i.'); ?>">
<img src="<?php the_field('property_image'.$i.'); ?> ">
</li> ');
$i++;
}
?>发布于 2015-12-11 19:37:47
如果您知道只有5项,那么只需使用for或while循环即可。foreach是为遍历元素数组而设计的一个循环,您没有这些元素。
考虑一下这个循环:
for($i = 1; $i <= 5; $i++) {
if( !empty(get_field('property_image'.$i)) ) {
echo '<li data-thumb="' . the_field('image_' . $i) . '">';
echo '<img src="' . the_field('image_' . $i) '" />';
echo '</li>';
}
}发布于 2015-12-11 19:37:53
foreach用于迭代数组。
foreach (array_expression as $value) {
// current array element
}您使用的语法将不适用于前程 (请参阅示例以了解它的工作方式)。
发布于 2015-12-11 19:38:16
对于您发布的实现,最好使用普通的For循环。
for ($i = 1; $i <= 5; $i++) {
// print <li>
}要使用foreach循环,需要对数组进行迭代。get_field("name")不返回数组,但是可以在get_fields()中使用foreach。
$fields = get_fields();
if( $fields )
{
foreach( $fields as $field_name => $value )
{
// Output values here
}
}详细信息:字段/
https://stackoverflow.com/questions/34231163
复制相似问题