在WordPress小部件中设置foreach

时间:2018-06-09 08:33:04

标签: php wordpress loops foreach

我坚持为我的链接小部件编写foreach循环。

我做了var_export($ instance,true),输出是

 'title' => ' Widget title',
 'image1' => 'img url',
 'link_title1' => 'Some link title',
 'target_type1' => '1',
 'link_url1' => 'some url',
 'image2' => '',
 'link_title2' => 'Some link title',
 'target_type2' => '1',
 'link_url2' => 'some url',
 'image3' => 'img url',
 'link_title3' => 'Some link title',
 'link_url3' => '',
 'image4' => 'img url',
 'link_title4' => 'Some link title',
 'link_url4' => '',
 'image5' => '',
 'link_title5' => 'Some link title',
 'link_url5' => '',

所以直到值达到数字10.我的首选输出是:

echo '<li>';
    if ($instance{'target_type' . $i} == 0) {
        echo '<img src=" '.$instance{'image' . $i} .' "><a href=" '. $instance{'link_url' . $i} .' ">' . $instance{'link_title' . $i} . '</a>';
    }
    else {
        echo '<img src=" '.$instance{'image' . $i} .' "><a href=" '. $instance{'link_url' . $i} .' " target="_blank">' . $instance{'link_title' . $i} . '</a>';
    }
echo '</li>';

但是,我不知道如何将foreach数组设置为值以实现工作。

1 个答案:

答案 0 :(得分:2)

从您的问题来看,您正在寻找的是for循环,而不是foreach

for ($i = 1; $i <= 10; ++$i) {
    echo '<li>';
    if ($instance['target_type' . $i] === '0') {
        echo '<img src="' . $instance['image' . $i] . '"><a href="' . $instance['link_url' . $i] . '">' . $instance['link_title' . $i] . '</a>';
    } else {
        echo '<img src="' . $instance['image' . $i] . '"><a href="' . $instance['link_url' . $i] . '" target="_blank">' . $instance['link_title' . $i] . '</a>';
    }
    echo '</li>';
}

此循环将从$ i = 1计算到$ i = 10.看起来这是您的意图......