首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果字段不是空的,PHP Foreach循环

如果字段不是空的,PHP Foreach循环
EN

Stack Overflow用户
提问于 2015-12-11 19:31:20
回答 5查看 2.2K关注 0票数 0

我正试图掌握foreach循环的艺术;我有下面的代码,用于WordPress和高级自定义字段插件。我想把它变成一个前轮。

代码语言:javascript
复制
<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返回图像。

代码语言:javascript
复制
<?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++; 

        }

?>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-12-11 19:37:47

如果您知道只有5项,那么只需使用forwhile循环即可。foreach是为遍历元素数组而设计的一个循环,您没有这些元素。

考虑一下这个循环:

代码语言:javascript
复制
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>';
   }
}
票数 3
EN

Stack Overflow用户

发布于 2015-12-11 19:37:53

foreach用于迭代数组。

代码语言:javascript
复制
foreach (array_expression as $value) {
     // current array element
}

您使用的语法将不适用于前程 (请参阅示例以了解它的工作方式)。

票数 1
EN

Stack Overflow用户

发布于 2015-12-11 19:38:16

对于您发布的实现,最好使用普通的For循环。

代码语言:javascript
复制
for ($i = 1; $i <= 5; $i++) {
    // print <li>
}

要使用foreach循环,需要对数组进行迭代。get_field("name")不返回数组,但是可以在get_fields()中使用foreach。

代码语言:javascript
复制
$fields = get_fields();

if( $fields )
{
    foreach( $fields as $field_name => $value )
    {
        // Output values here
    }
}

详细信息:字段/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34231163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档